В приложении, которое я пишу, которое использует большую таблицу таблиц HTML, для дизайна требуется, чтобы строка и столбец зависшей ячейки были выделены.Проблемы с производительностью IE6 с добавлением className для нескольких элементов (плагин jQuery tableHover)
Я разрабатываю все JS для этого проекта с помощью jQuery 1.3.x, и я нашел плагин tableHover, который делает именно то, что мне нужно.
Но:
на IE6 производительность этого плагина падает вниз, как количество клеточных элементов подняться до точки, где страница почти не реагирует.
Я думал, что проблемы лежат в плагине, и я фактически переписал его всю функциональность с нуля, просто обнаружив, что у меня такие же проблемы с производительностью.
После отладки кода я теперь знаю, что при выборе большого количества элементов, а также применение Classname (jQuery.addClass()) крайне медленно на IE6.
Я пытался использовать jQuery.css() вместо только цвета фона, производительность лучше, но опять же, когда число ячеек таблицы расти производительность падает до нерабочего состояния, и на все в других браузерах производительность jQuery.css() намного медленнее, чем jQuery.addClass().
Основная проблема здесь заключается в том, что не существует общего родителя в столбец таблицы, поэтому для того, чтобы стиль столбца нужно пройти всю таблицу, выберите каждую строку, а затем найти правильный п-й ребеноктд. мой JQuery код для этого выглядит следующим образом:
//col_num is the current td element
//table is the parent table
var col_num = cur_cell.prevAll().length + 1;
var this_col = $('tr td:nth-child(' + col_num + ')', table);
Я не буду вставлять весь мой код здесь, потому что это не имеет значения для данного вопроса. Единственный ответ, который я ищу, - это: Есть ли известный способ сделать то, что мне нужно, в лучшем качестве? Я не ищу скорость работы Chrome, просто что-то быстрее, чем «не реагирует».
Thnaks
Tom.
Спасибо. Я пытался избежать кодирования данных в HTML (добавляет сложности со стороны сервера ..), родительский eventHandler и кеширование ... Это просто визуальный эффект. но я думаю, вы правы, ради совместимости мне нужно убрать мой код. – Tombigel
IE6 является самым большим уруглителем в веб-разработчике – mkoryak