2013-12-04 3 views
1

Я использую шаблон (Developr), который использует Modernizr. Также я использую плагин Tablesorter. Дело в том, что если я отключу Modernizr, сортировка таблицы (2k + rows) займет около 3 секунд. Но функции шаблона не работают. При включенном Modernizr сортировка одной и той же таблицы занимает более 1 минуты! Есть ли способ ускорить процесс? (т. е. каким-то образом запретить взаимодействие tablesorter-modernizr и т. д.). Использование последних версий обоих плагинов - Modernizr v2.7.1, Tablesorter v2.14.3modernizr slows down tablesorter

P.S. Сортировка таблицы со 100 рядами занимает примерно одно и то же время независимо от того, включен или выключен Modernizr (по крайней мере визуально)

PS2 Даже MouseOver (предполагается, что выделение строки в таблице) на таблице строк 2k работает с заметным задержка.

Timelines из Chrome:

Modernizr ПО: https://www.dropbox.com/s/lurhmx3w7esi304/TimelineRawData-20131204T202607.json

Modernizr OFF: https://www.dropbox.com/s/l0o648nfij9pqnl/TimelineRawData-20131204T205035.json

<script src="js/libs/modernizr.custom.js"></script> 

<script src="js/ts/js/jquery.tablesorter.js"></script> 
<script src="js/ts/js/jquery.tablesorter.widgets.js"></script> 
<script src="js/ts/js/jquery.tablesorter.widgets-filter-formatter.js"></script> 
<script src="js/ts/js/jquery.metadata.js"></script> 

<script id="js">$(function(){ 

$("#thetable").tablesorter({ 
    showProcessing: true, 
    theme : 'green', 
    widthFixed : true, 
    widgets: [ 'reorder', 'zebra', 'stickyHeaders', 'filter' ], 
    widgetOptions: { 
    stickyHeaders : 'tablesorter-stickyHeader', 
    stickyHeaders_cloneId : '-sticky', 
    stickyHeaders_offset : 35, 
    filter_startsWith : true, 
    filter_searchDelay : 1000, 
    zebra : ["ui-widget-content even", "ui-state-default odd"], 
    uitheme : 'green', 
    } 
    }); 
</script> 
+0

Какой браузер вы видите? – Patrick

+0

Chrome, IE 11, Firefox ... – dMole

+1

Первым шагом для отладки в хроме будет запись временной шкалы в хроме в течение периода, который ведется навсегда (https://developers.google.com/chrome-developer-tools/docs/Timeline # tips_for_making_recordings). Это должно показать вам, где медлительность. Трудно никому помочь вам без живого кода - не могли бы вы поместить его на jsfiddle/codepen? – Patrick

ответ

1

Патрик! Большое спасибо за Вашу помощь. Ваши советы привели меня к решению. Проблема была в дополнительном скрипте, который выполнялся шаблоном. Для параметра DOM change watcher установлено значение true. Итак, когда tablesorter сортировал строки таблицы один за другим, этот наблюдатель запускался каждый раз - вот почему так много мусора. Превращение наблюдателя в ложное решение проблемы.