У меня есть функция, вызываемая document.ready, которая проходит через таблицу с примерно 600 строками, которая была сгенерирована в классическом ASP. В «современном» браузере (Chrome, Firefox, IE9 Beta) он работает менее 1,5-2 секунд. В IE6 он работает примерно через 5-7 секунд, а не хорошо.jQuery Looping Through TableRows/Table Cells Performance
В основном, что я делаю, это добавление значения ячеек в определенные столбцы и предоставление промежуточных итогов. (Я знаю, это должно быть сгенерировано на стороне сервера, но некоторые brainiac разработали это, используя представления, которые вызывают представления, которые называют представления, которые называют представления ...).
Я использовал профайлер IE9, чтобы попытаться получить ощущение, где бутылка шея и это, кажется, самым глубоким, когда находят и JQuery в каждый называется:
tr.find("td").each(function() {
&
tr.find("td").eq(ci).html(tot).css
Я буду размещать весь код, если необходимо, но мне было интересно, есть ли более эффективный способ перебора через неназванные строки и ячейки таблицы?
таблица выглядит следующим образом:
32 47 0/0 0 8 1 1
32 47 -7 0/0 0 0 7
Totals -7 0/0 8 1 8
32 47 0/0 0 2 1 1
32 47 -7 0/0 0 3 7
Totals -7 0/0 5 1 8
петли I по строкам таблицы и если я найду (Td: первый) = «Итоги», то я помещаю текущий тр, и два предыдущих ТР в переменных , затем захватить ячейки и рассчитать итоговые значения и поместить эти итоговые значения в соответствующие ячейки.
Все это работает, но, как я уже сказал, есть серьезная шея бутылки во время поиска и каждого.
Я попробую сегодня вечером/утром и сообщить о моих результатах ... Спасибо! – wali
+1 - Свойства 'rows' и' cells' - отличный способ ускорить итерацию таблицы. Единственное, что я мог бы добавить, это кэширование текущей строки и текущей ячейки в каждом цикле 'for'. Эти поиски свойств складываются. – user113716
... На самом деле, я думаю, это будет просто строка. Не ячейка. – user113716