繁体   English   中英

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

[英]Ajax script doesn't work well while typing(keyup)

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

我的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);
      }
    });
  }
}

如果用户快速键入搜索词,则用户将获得所需的结果。 如果您缓慢输入,则会得到结果,几秒钟后,它会断裂并显示其他结果(也许是通过先前按下的键?)。

有任何想法吗?

您可以尝试进行反跳操作,这只会在不活动250毫秒后触发请求。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM