我正在使用一个利用Modernizr的模板(Developr)。我也使用Tablesorter插件。 问题是,如果我禁用Modernizr,排序表(2k +行)大约需要3秒钟。但模板功能不起作用。启用Modernizr后,对同一个表进行排序需要1分钟以上! 有没有办法加快这个过程? (即以某种方式禁止tablesorter-modernizr交互等)。使用两个插件的最新版本 - Modernizr v2.7.1,Tablesorter v2.14.3
P.S。无论Modernizr是打开还是关闭(至少在视觉上),对具有100行的表进行排序大约需要相同的时间
P.S.2甚至MouseOver(它应该突出显示表中的一行)在2k行表上工作时会有明显的延迟。
Chrome的时间表:
Modernizr ON: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 :(得分:1)
帕特里克!非常感谢您的帮助。你的提示引导我解决问题。 问题出在附加脚本中,该脚本由模板运行。 DOM更改观察者设置为true。因此,当tablesorter逐个排序表的行时,每次都会触发该观察者 - 这就是为什么那么多的垃圾。将观察者变为虚假解决了这个问题。