使用jquery插件进行分页,当加载50k时记录它会导致整个系统freez。如何解决这个问题?

时间:2015-10-16 11:53:22

标签: javascript jsp servlets datatables

我需要做的是,当用户在输入框中输入数字并点击按钮获取数据时,则调用一个java方法返回数据列表的记录,现在在jsp页面数据需要以表格格式存储。通过jquery插件添加分页,搜索和排序。

我从方法得到的数据约为50k(记录)。

我按照此链接添加分页和所有, https://datatables.net/examples/basic_init/alt_pagination.html

这个问题,大约需要2到3分钟来加载页面并导致系统挂起。

从方法数据来看,数据更快,即几秒钟内。

如果是500到1000条记录,则显示速度更快。当数据增加时,它会导致整个系统停止运行。它会提示继续或停止(js)。

错误: 提示继续或停止编写脚本。 此页面上的脚本可能正忙,或者可能已停止响应。您可以立即停止脚本,也可以继续查看脚本是否完成。

脚本:https://code.jquery.com/jquery-1.11.3.min.js:4

我试过没有任何脚本,最多需要2到3分钟......

他们是否可以解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:0)

显然您正在使用客户端处理模式。请改用server-side processing mode来返回当前页面的数据。

来自manual

  

每个都有自己的优点和缺点,但您应该选择哪种模式的关键指标取决于表中的行数。根据经验,如果使用少于10,000行的客户端处理,则使用服务器端处理的行数超过100,000行。中间是一个灰色区域,您需要根据应用程序的性质和要显示的数据做出决定。

缺点是您需要在服务器端脚本中实现排序,过滤和分页。但是,有可用于不同语言的库。例如,DataTables发行版附带了PHP助手类(ssp.class.php)。