快速Javascript表格分类器?

时间:2009-03-14 04:48:29

标签: javascript jquery

我有一个大约250行的表(可能在6个月内翻倍),以及this page上的50列(警告:IE慢)。我正在使用JQuery Table sorter。但是IE 7的速度太慢了:它会对慢速javascript发出警告,并询问我是否要阻止它。我花了很多时间来提高性能,所以它适用于所有其他浏览器:

  • 仅排序文字和数字
  • 删除了除2个解析器外的所有解析器
  • 创建了一个包含所有值的额外表,比为每个单元格执行node.textContent()要快得多。
  • 删除小写,修剪等

我的javascript版本是here。我想我不能再优化它了。我正在寻找表分拣机的另一个快速实现,或者我可能忘记的任何好的优化,以便IE 7不会抱怨执行时间。

编辑:我已禁用35列的排序,对于IE来说仍然太长了

8 个答案:

答案 0 :(得分:7)

我使用sorttable一个非常快速的表格排序javascript库。 (不是JQuery)

答案 1 :(得分:2)

我是Christian Bach的jQuery表格分类器的忠实粉丝... http://tablesorter.com/docs/

  • 紧凑而快速
  • 按多列排序
  • 动态斑马条纹
  • 可选的元数据扩展使事情变得更加轻松
  • 解析文本,html,数字,等等(易于定制)的解析器
  • CSS样式标题(当然)
  • 跨浏览器:IE 6.0 +,FF 2 +,Safari 2.0 +,Opera 9.0 +

enter image description here

编辑:任何对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

  • 可变长度分页
  • 动态过滤
  • 具有数据类型检测的多列排序
  • 智能处理列宽
  • 显示来自几乎所有数据源DOM,Javascript数组的数据, Ajax文件和服务器端处理(PHP,C#,Perl,Ruby,AIR, 齿轮等)
  • 表格视口的滚动选项
  • 完全国际化
  • jQuery UI ThemeRoller支持
  • 坚如磐石 - 由一套2900单元测试支持
  • 各种各样的插件公司。编辑器,TableTools,FixedColumns和 更
  • 这是免费的!

答案 6 :(得分:0)

如果您正在使用认真的大型数据库,请尝试服务器端使用DataTables (jQuery插件)。

基本上,DataTables所做的所有分页,过滤,排序等都可以传递给服务器(或任何其他数据源)。

这里有完整的例子: http://datatables.net/examples/data_sources/server_side.html

答案 7 :(得分:-1)

函数buildCache(表)中的问题 219行 错误:'all_data'未定义

相关问题