【发布时间】:2012-07-23 16:28:51
【问题描述】:
我已经使用 jQuery datatables plugin 大约两年了,到目前为止效果很好。当我需要一次加载大约 45000 条记录时(您单击按钮并等待加载数据的页面),现在出现了问题 - 加载时间太长,无法等待。
这是我使用 Chrome 网络浏览器进行的测试(数据来自它的网络选项卡使用):
数据表插件已打开:
5476 条记录:24 requests ❘ 256.26KB transferred ❘ 19.80s
(onload: 19.80s, DOMContentLoaded: 18.58s)
45071 条记录:34 requests ❘ 1.85MB transferred ❘ 11.1min
(onload: 11.1min, DOMContentLoaded: 11.0min)
数据表插件关闭(jQuery 数据表初始化被注释掉):
5476 条记录:21 requests ❘ 255.84KB transferred ❘ 6.57s
(onload: 13.26s, DOMContentLoaded: 13.28s)
45071 条记录:31 requests ❘ 1.84MB transferred ❘ 2.0min
(onload: 2.0min, DOMContentLoaded: 2.0min)
45k 行数据表加载时间增加超过80%,5k 行几乎40%。
所以我想知道你们是否知道任何类似的插件可以更快地处理很多行(45000+),或者我只是试图“一次性”加载所有 45000+ 记录而错过了重点?
欢迎提出任何建议!
【问题讨论】:
-
我想说你没有抓住重点,45000 行是一个巨大的数据集,需要在浏览器中处理。也许您应该考虑加载较小的数据视图并进行分页
-
您是否有任何理由需要一次加载那么多记录?这几乎会减慢任何速度......
-
我建议时间延迟可能不是拉数据,而是 dom 操作。您是否考虑过优化现有的 jquery 代码?
-
@NicholasKing:这也是我的怀疑,这就是为什么我进行了证实这一点的测试。对于优化 - 我真的不知道我还能对 jQuery 数据表调用做哪些优化,因为我只是通过 $('#example').dataTable({ "bJQueryUI": true, "iDisplayLength": 50 } );`
-
你使用服务器
Server side processing吗?您可以将它与 pagination 一起使用,因此最终在当前任何时候您都将在客户端处理一小部分行......
标签: php jquery datatables