我在我的应用程序中使用datatables插件,但是由于它的成功,记录的数量急剧增加(每周有1000条新记录),因此我对datatables的查看响应时间也在增加。
现在,我调用了一个REST服务,该服务是通过在与Java类连接的xpage上通过rest控件设置的,以从viewnavigator填充json数组。
根据我的了解,我无法在datatables组件启动的ajax调用中禁用URL。另一种选择是,我正在考虑将json放置在视图或sessionscope中,并通过脚本块控件加载该json,但是我不确定是否会在这里获得性能(也许有一个按钮来更新scope变量)。
您的经验/建议是什么?
但是如果您绝对需要加载大量数据,则可以选择几个不同的方向...。
var ajaxOptions = {
type: 'GET',
"url": *your rest url*,
contentType: 'application/json',
dataType: 'json',
cache: false
}
$.ajax(ajaxOptions)
.fail(function() {
console.log("AJAX FAIL")
})
.then(function(resp){
localStorage.setItem('dtdata', JSON.stringify(resp));
})
.done(function() {
// initialize DataTable
$("#myTable").DataTable( {
"data": JSON.parse(localStorage.getItem('dtdata')),
"columns": o.columns
// other DataTable parameters
})
});
#3和1或2的任何组合。
此选项允许您处理分页服务器端,并将发送给客户端的数据限制为当前页面的数据。它将一些参数添加到ajax调用中,您可以在返回数据的代码(代理)中对其进行处理。缺点是必须同时在服务器端完成排序,过滤等操作(除非您关闭这些选项)
更多信息可以在这里找到:https://datatables.net/manual/server-side
我不确定如何将其与rest控件一起使用,但是通过对(脚本)代理的ajax调用,它可以正常工作。