【发布时间】:2017-10-07 20:22:22
【问题描述】:
我正在使用数据表 (https://datatables.net/),并且我启用了延迟加载。它只需要做些什么,加载 10 个结果(或者其他什么,现在不那么重要)。然后,当你点击一个新页面时,它必须得到 X 个下一个结果(可能有很多结果,所以我不想一次加载所有数据)。
现在,有一个问题。如果我搜索,它会在每个字符之后发送一个 AJAX 请求,从而导致大量 AJAX 请求。但它应该做的是:
- 加载 10 个项目
- 你输入
- 最后输入字符后,等待 2 秒,然后触发 AJAX 请求
我得到了这个代码:
var dataTable = $('#editor').dataTable({
ajax: {
url: baseUrl + '/ajax/getWebpages',
dataSrc: '',
type: 'POST'
},
deferLoading: 10,
serverSide: true,
searchDelay: 2000,
}).on('search.dt', function()
{
clearTimeout(timer);
timer = setTimeout(function() {
return true;
}, 2000);
});
我知道返回 true 可能是错误的,我真的不知道如何让我的想法发挥作用。找了半天也没找到。
【问题讨论】:
-
是的。但这不符合我的要求;相反,它只是在发出请求之前等待 X 毫秒,这意味着如果您输入 5 个字符,它会等待并仍然执行所有这些请求。但我已经找到了答案。
-
你看的叫“去抖”看看吧
标签: jquery datatables