我有一个大约250行的表(可能在6个月内翻倍),以及this page上的50列(警告:IE慢)。我正在使用JQuery Table sorter。但是IE 7的速度太慢了:它会对慢速javascript发出警告,并询问我是否要阻止它。我花了很多时间来提高性能,所以它适用于所有其他浏览器:
我的javascript版本是here。我想我不能再优化它了。我正在寻找表分拣机的另一个快速实现,或者我可能忘记的任何好的优化,以便IE 7不会抱怨执行时间。
编辑:我已禁用35列的排序,对于IE来说仍然太长了
答案 0 :(得分:7)
我使用sorttable一个非常快速的表格排序javascript库。 (不是JQuery)
答案 1 :(得分:2)
我是Christian Bach的jQuery表格分类器的忠实粉丝... http://tablesorter.com/docs/
编辑:任何对tablesorter感兴趣的人都应该看看Mottie用它做过什么:https://github.com/Mottie/tablesorter
答案 2 :(得分:1)
大多数工作缓慢的JScript解决方案都与DOM进行了大量的交互。目前,您正在进行每行一行的DOM级编辑,这将需要很长时间才能完成。如果你在一个字符串中构建HTML然后立即将它放在DOM中,那么它会更快。 (在最后一个PDC上有一些演示显示了这一点。)
但这里故事的寓意是你的桌子很大。您可能会想到使用REST,表分页和排序以及一些服务器端逻辑。我认为这可以更快,并且可以与JQuery一起使用。 (它仍然是一个AJAX解决方案。)它甚至可以为您节省一些带宽...
希望这会有所帮助。
答案 3 :(得分:1)
注释掉对applyWidget及其各自绑定的任何引用以及删除未使用的解析器对IE6中的500行表有很大的不同(是的,我知道,但它仍然不会死)。
答案 4 :(得分:0)
你可以做的最糟糕的事情之一是使用eval(),我在你的代码中看到了这一点。您应该分析您的代码并查看瓶颈所在。
答案 5 :(得分:0)
这个jQuery插件是一个非常强大的选项,名为DataTables。
答案 6 :(得分:0)
如果您正在使用认真的大型数据库,请尝试服务器端使用DataTables (jQuery插件)。
基本上,DataTables所做的所有分页,过滤,排序等都可以传递给服务器(或任何其他数据源)。
这里有完整的例子: http://datatables.net/examples/data_sources/server_side.html
答案 7 :(得分:-1)
函数buildCache(表)中的问题 219行 错误:'all_data'未定义