键入时,Ajax脚本无法正常工作(keyup)

问题描述 投票:0回答:1

我有一个用于搜索的输入。用户开始键入并在键入时,表中显示了与键入的字符串相关的许多结果。

我的HTML:

<input type="text" id="searchinput" onkeyup="Search()" placeholder="Search...">

我的Javascript函数:

function Search() {
  var value = $("#searchinput").val().toLowerCase().trim();
  if (value == '') {
    $("div#results").html('');
  } else {
    $.ajax({
      type: 'post',
      url: 'getresults.php',
      data: {
        values: value
      },
      success: function(response) {
        $("div#results").html(response);
      }
    });
  }
}

如果用户快速键入搜索词,则用户将获得所需的结果。如果你输入的速度很慢,那么它就会得到结果,几秒钟之后,就像它会断开并显示其他结果(可能来自之前按过的键?)。

有任何想法吗?

javascript ajax
1个回答
3
投票

您可以尝试进行去抖动,这只会在250ms不活动后触发请求。

$.debounce(250, function(e) {
    console.log("It works!");
})

这是我引用的去抖功能 http://benalman.com/code/projects/jquery-throttle-debounce/jquery.ba-throttle-debounce.js

© www.soinside.com 2019 - 2024. All rights reserved.