当前位置: 首页 > 面试题库 >

如何在执行搜索之前让实时jQuery搜索等待一秒钟?

苏鸿才
2023-03-14
问题内容

我有一个搜索输入,当我输入内容时,该输入会将数据从输入发送到php文件。php文件对我的数据库进行搜索,并显示搜索选项列表。您知道,ajax风格的实时搜索。

我的问题是,如果您输入的内容非常快,即使输入了另外10个字母,它也可能只搜索前1或2个字母。这引起一些问题。

我的jQuery看起来像这样:

$(document).ready(function(){
  $('#searchMe').keyup(function(){
    lookup(this.value);
  });
});

function lookup(searchinput) {

  if(searchinput.length == 0) {
    // Hide the suggestion box.
    $("#suggestions").hide();
  } else {

    $('#loading').fadeIn();

    $.post("/RPCsearch.php", {queryString: ""+searchinput+""}, function(data){
      if(data.length > 0) {
        $("#suggestions").html(data).show();
        $('#loading').fadeOut();
      }
    });
  }
} // lookup

所以我很好奇,如何使脚本等到我完成输入后再运行该函数?我的逻辑是说,例如,如果200秒钟内没有按下任何键,请运行该功能,否则请稍等一下。

怎么做?


问题答案:

容易,使用setTimeout。当然,您只希望一次运行一个计时器,因此clearTimeout在函数开始时使用它很重要…

$(function() {
  var timer;
  $("#searchMe").keyup(function() {
    clearTimeout(timer);
    var ms = 200; // milliseconds
    var val = this.value;
    timer = setTimeout(function() {
      lookup(val);
    }, ms);
  });
});


 类似资料:
  • 问题内容: 我想知道如何使用Range-Query在Hibernate Search中按日期进行搜索,还是我必须实现任何过滤器?以下是我在Record Entity中的字段 我的要求是找到两个日期之间分析的记录,例如。2011年11月11日至2012年11月11日。我很困惑如何执行此操作。 问题答案: 您应该使用 从 和 到 的范围查询。 因为您使用 DateTools 自己创建了基于字符串的搜索

  • 我想知道是否有办法做到这一点,没有任何混乱或混乱。另外,当我执行方法时,它有一个错误。

  • 所以我用jquery做了一个自动完成。Ajax用于从远程位置获取大量xml文件。如果我搜索ex.“两个半男人”,它会用ajax进行大约16次查询(除了3次之外,每一次输入的字母,先看代码)。 我希望它在用户按下最后一个键后一秒钟执行Ajax请求,因此它将执行一个查询而不是16个查询。 因此,如果用户在上次按键事件后 1 秒之前按另一个键,则它尚不会执行查询。 有什么想法吗?

  • 问题内容: 我一直在Google搜索和搜索Stack Overflow已有一段时间,但是我无法解决此问题。 我有一个标准的HTML表,其中包含水果。像这样: 在此上方,我有一个文本框,我想在用户输入时搜索表格。因此,例如,如果键入,表的橙色行将消失,剩下苹果和葡萄。如果他们继续打字,苹果排应该消失,只剩下葡萄。我希望这很清楚。 而且,如果用户从文本框中删除部分或全部查询,我希望现在重新出现与查询匹

  • 问题内容: 我正在将其用作搜索的一部分,但必须使用+30000个项。 问题在于,搜索的初始部分是在搜索之前完成的,因此触发和功能将继续进行。我应该怎么做才能阻止这种情况? 问题答案: 所以,我已经重新编写了它,以便在这里帮助任何需要它的人。

  • 当跨多个索引进行搜索时,elasticsearch的“多重匹配”查询将返回搜索结果中的索引名称。 响应包含字段,该字段告诉结果来自的索引 spring-data-elasticsearch中用于的类是和具有字段、、用于获取与elasticsearch查询相似的数据。但它不包含用于存储字段信息的相关字段。 还支持吗?我需要根据哪个客户端应用程序将生成一些URL发送搜索命中类型(name)。 这是我使