【发布时间】:2015-07-29 12:15:09
【问题描述】:
我正在使用 DataTables 创建一个表,但它的加载速度非常慢。我有大约。需要从 SQL 服务器处理的 9000 条记录(php 不是一个选项)。我正在使用 XML 和 Spring MVC。我正在使用 XML 和 Java 来收集数据并将其放入 HashSet 中(我也尝试过列表,似乎都没有比另一个更快)。
一旦我进入 JS,我将使用 for 循环来填充我的数组,然后我将其用作数据表的“数据”。我的理解是,使用 serverSide 和“ajax”(代替数据)会显着加快速度,所以我想知道是否有办法获取我的数组并将它们用作 AJAX。
谢谢。
当前代码:
var InternationalSet = [];
var storeIndex = 0;
<c:forEach items="${InternationalList}" var="entry">
InternationalSet[storeIndex]= ['', "${entry.getStoreId()}","${entry.getOrderPhone()}","${entry.getAddress1()}","${entry.getCity()}","${entry.getState()}", "${entry.getZip()}", "${entry.getMgrName()}",
"${entry.getFranchiseeName()}", "${entry.getOrglvl6Descr()}","${entry.getCommDescr()}", "${entry.getOrglvl8Name()}", "${entry.getLatitude()}", "${entry.getLongitude()}"];
storeIndex++;
</c:forEach>
$('#dataTable').html( '<table cellpadding="0" cellspacing="0" border="0" style="width: 99%; color:black" class="display compact" id="tableOne"></table>' );
var table = $('#tableOne').DataTable( {
"dom": '<l<t>ip>',
"deferRender": true,
"lengthChange": false,
"data": InternationalSet,
"pageLength": 10,
"orderMulti": false,
"columns": [.....
【问题讨论】:
-
是数据库查询慢,还是JavaScript处理慢?
-
您可能一次获取 9000 条记录,应用分页
-
不要将 9000 条记录转储到 UI - 浏览它们。
-
数据表文档中有服务器端处理的示例...相应地调整您的服务器脚本以提供所请求的内容
-
我有,网站说默认开启。我没有注意到将它放在那里和留空之间有什么区别
标签: javascript jquery ajax datatables jstl