修改jQuery数据表搜索

时间:2014-07-25 14:57:03

标签: jquery search datatable

我在我的应用程序页面中使用jQuery数据表。我想修改搜索行为。

当前行为如下:当用户在文本字段中输入搜索词(例如,abc)时,请求在每个搜索字符上发送到服务器。

假设在搜索字段中键入第一个类型“a”,然后键入“b”然后“c”,为每个char生成一个请求并发送到服务器,如

  • www.myapplication.com/finddata&search=a
  • www.myapplication.com/finddata&search=ab
  • www.myapplication.com/finddata&search=abc

每次刷新表格并显示每个搜索字符的数据。像这样的表刷新序列

  1. 将显示“a”的第一个搜索结果
  2. 然后显示“ab”的搜索结果
  3. 然后搜索结果og“abc”将显示
  4. 当表有少量数据时,这绝对没问题。用户无法注意到表格上的快速数据数据更改,但用户只对查看上一个搜索词的数据感兴趣。

    当表格包含数千行和30列或更多列时(例如图像下方),会出现问题。然后表执行变慢并且用户容易注意每个搜索字符的表刷新,但是用户仅对最后搜索查询的结果感兴趣。用户不应该注意到第一个搜索查询(char)的结果,然后是第二个和第三个,依此类推......

    enter image description here

    是否可以在datatable中修改该行为?我看不到任何配置参数,或者需要修改数据库本身?

1 个答案:

答案 0 :(得分:0)

尝试使用单个AJAX请求! 基本上,每次用户键入一个字符时,abort现有的AJAX调用,然后开始一个新的。

<强>伪码

var request;
onkeyup = function(){
  if(request && request.readystate != 4){
     request.abort();
  }
  request = $.ajax(/* new request */);
}

值得一试!