modernizr减慢了tableorter

时间:2013-12-04 17:32:55

标签: javascript tablesorter modernizr

我正在使用一个利用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>

1 个答案:

答案 0 :(得分:1)

帕特里克!非常感谢您的帮助。你的提示引导我解决问题。 问题出在附加脚本中,该脚本由模板运行。 DOM更改观察者设置为true。因此,当tablesorter逐个排序表的行时,每次都会触发该观察者 - 这就是为什么那么多的垃圾。将观察者变为虚假解决了这个问题。