modernizr降低了表分类器的速度

modernizr slows down tablesorter

本文关键字:分类器 速度 modernizr      更新时间:2024-03-02

我使用的是一个使用Modernizr的模板(Developr)。我也使用Tablesorter插件。问题是,如果我禁用Modernizr,排序一个表(2k行以上)大约需要3秒。但是模板功能不起作用。启用Modernizr后,对同一张表进行排序需要1分钟以上的时间!有没有办法加快这个过程?(即以某种方式禁止表分类器modernizr交互等)。使用两个插件的最新版本-Modernizr v2.7.1、Tablesorter v2.14.3

附言:无论Modernizr打开或关闭(至少在视觉上),对一个有100行的表进行排序都需要大约相同的时间

p.S.2即使是2k行表上的鼠标悬停(它应该突出显示表中的一行)也会有一个值得注意的延迟。

Chrome的时间表:

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

Modernizr关闭: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>
帕特里克!非常感谢你的帮助。你的建议让我找到了解决方案。问题出现在由模板运行的附加脚本中。DOM更改观察程序设置为true。所以,当tablesorter一个接一个地对表的行进行排序时,每次都会触发这个观察程序——这就是为什么会有这么多垃圾。将观察者设置为false解决了问题。