我在我的应用程序页面中使用jQuery数据表。我想修改搜索行为。
当前行为如下:当用户在文本字段中输入搜索词(例如,abc)时,请求在每个搜索字符上发送到服务器。
假设在搜索字段中键入第一个类型“a”,然后键入“b”然后“c”,为每个char生成一个请求并发送到服务器,如
每次刷新表格并显示每个搜索字符的数据。像这样的表刷新序列
当表有少量数据时,这绝对没问题。用户无法注意到表格上的快速数据数据更改,但用户只对查看上一个搜索词的数据感兴趣。
当表格包含数千行和30列或更多列时(例如图像下方),会出现问题。然后表执行变慢并且用户容易注意每个搜索字符的表刷新,但是用户仅对最后搜索查询的结果感兴趣。用户不应该注意到第一个搜索查询(char)的结果,然后是第二个和第三个,依此类推......
是否可以在datatable中修改该行为?我看不到任何配置参数,或者需要修改数据库本身?
答案 0 :(得分:0)
尝试使用单个AJAX请求!
基本上,每次用户键入一个字符时,abort
现有的AJAX调用,然后开始一个新的。
<强>伪码强>
var request;
onkeyup = function(){
if(request && request.readystate != 4){
request.abort();
}
request = $.ajax(/* new request */);
}
值得一试!