代码之家  ›  专栏  ›  技术社区  ›  jevakallio

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

  •  1
  • jevakallio  · 技术社区  · 14 年前

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

    现在我需要在更大的数据集上实现相同的功能(搜索、排序、分页), 最多1000条记录 tr 已导致“此页上的脚本运行缓慢”警报。

    因为数据集是 ,如果可能的话,我非常愿意在客户身上这样做。

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

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

    3 回复  |  直到 14 年前
        1
  •  0
  •   DarrellNorton    14 年前

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

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

    性能:重新编写排序实现,使其不使用$.inArray()的eval()。发现inArray对IE有严重的负面影响,IE计算操作数以给出“脚本正在运行缓慢”错误消息-新实现使用值/键反向映射使查找速度与单个对象参数retreival一样快。

    获取包含以下信息的生成(或更高版本)

        2
  •  1
  •   jevakallio    14 年前

    经过进一步的性能测试,结果是 排序导致性能问题

    您只需使用 "bSort":false

        3
  •  0
  •   netadictos    14 年前

    我更喜欢flexigrid:

    http://www.flexigrid.info/

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