如何优化jquery数据表以有效地加载大数据(10k-50k行)?

abh*_*sit 15 html jquery jquery-datatables

我使用最小配置的jquery数据表来展示我网站上的数据.我有10K到50K的记录显示在数据表中.

目前,数据表大约需要60秒来初始化3000条记录.

有两个选项可用于初始化数据表: -

1)在页面上添加记录作为html表,然后在该表上初始化数据表.
2)拥有一个json记录,然后用该数据初始化datatable.

执行以下步骤有助于我们提高datatable插件的性能: -

1)减少列数
2)对相关列进行分组
3)仅对所需字段进行排序或一起删除排序功能

数据如下 - 这是一组mcq问题,带有预览/编辑/删除选项

在此输入图像描述

搜索问题对我的应用程序非常重要.
请提供最佳解决方案,以便为所提供的数据集使用数据表.

Amu*_*art 7

你忘了第三个选择:服务器端处理

您可以从官方文档中了解您需要了解的几乎所有内容:http: //www.datatables.net/examples/server_side/simple.html

基本上,您只需加载显示表格所必需的数据.由于页面需要更多数据,例如转到不同的页面或搜索,服务器会返回更多数据的客户端.

有很多方法可以将数据导入DataTables,如果您正在使用认真的大型数据库,您可能需要考虑使用DataTables提供的服务器端选项.启用服务器端处理后,DataTable执行的所有分页,搜索,排序等操作都会传递到服务器,其中SQL引擎(或类似工具)可以对大型数据集执行这些操作(毕竟,这就是数据库引擎是专为!)而设计的.因此,表的每次绘制都将导致生成新的Ajax请求以获取所需的数据.

  • @abhinsit依靠客户进行繁重的处理从来都不是一个好主意.客户端可能没有足够的处理能力来进行计算.您也不希望通过网络发送不必要的数据来浪费带宽.在任何情况下,任何旨在处理UI的JavaScript/JQuery解决方案都不会像设计用于处理大型数据集的SQL数据库那样快.DataTables IMO是功能和易用性方面最好的JQuery表库.您可能能够找到其他库,但您将失去搜索和排序等功能. (5认同)
  • @ChernikovP我还建议他重做UI.在每一行上都有CRUD操作按钮是多余的.更好的方法是在页面顶部放置这些按钮.单击某一行时,该行会突出显示,您可以使用顶部的同一组按钮选择要执行的操作. (2认同)