在客户端上搜索,排序和分页大型数据集

时间:2010-10-21 12:13:26

标签: javascript jquery performance datatables

我一直在使用jQuery(http://www.datatables.net)的DataTables插件来搜索,排序和分页客户端上的表格数据。实施的简单性和流畅的用户体验是一个巨大的胜利。

现在我需要在更大的数据集上实现相同的功能(搜索,排序,分页),最多1000条记录。我希望为此使用相同的插件,但是当表中的记录数量增加时,DataTables的性能似乎会急剧下降。在IE8上,500 tr的表已经导致“此页面上的脚本运行缓慢”警报。

因为数据集不是那么大,所以如果可能,我非常希望在客户端上执行此操作。

有没有办法通过更改呈现的标记,禁用某些功能,将数据作为JSON而不是HTML提供或以其他方式配置它来在大多数现代浏览器上实现1000个客户端记录的合理性能来提高DataTables插件的性能(IE7 +,FF2 +,Chrome)。

或者,是否有其他javascript库,最好是jQuery,可以提供类似的功能?

3 个答案:

答案 0 :(得分:1)

经过一些进一步的性能测试后,发现排序导致了性能问题。 jQuery DataTables能够在IE6上对多达3000条记录的表进行分页和搜索,而且在上一代浏览器上远远更多。

您所需要做的就是使用"bSort":false初始化DataTables并将其视为冠军。

答案 1 :(得分:0)

我更喜欢flexigrid:

http://www.flexigrid.info/

记录数不是问题,因为它是在每个页面实现的。所以我们一次不管理1000条记录。

答案 2 :(得分:0)

这是在最近的DataTables版本(v1.7.5 +)中修复的。作者将排序实现更改为不使用eval或$ .inArray()。

直接下载链接:http://datatables.net/download/build/jquery.dataTables.nightly.js

从更改日志中: 性能:重写了排序实现,因此它不使用$ .inArray()的eval()。发现inArray对IE有严重的负面影响,计算操作以使'脚本运行缓慢'错误消息 - 新实现使用值/键反向映射使查找速度与单个对象参数retreival一样快。

使用以下信息(或更高版本)抓取构建 每晚:1.7.5.dev 2010年11月28日星期日,14:42下载下载最小注释