【问题标题】:jQuery onchange event, how to ignore too frequently changes?jQuery onchange 事件,如何忽略过于频繁的变化?
【发布时间】:2016-02-24 00:15:16
【问题描述】:

我想在我的文本输入上实现一个自动完成功能,使用 jQuery 通过监视更改事件并在每次更改时查询我的数据库。

我知道有一些自动补全插件,但我正在执行模糊搜索之类的操作,因此关键字“ad”可能会导致“abort”或“and”等词。如果我错了,请纠正我,我发现大多数插件都进行精确搜索。

但是,我不想太频繁地进行数据库查询,也就是说,我只想在文本输入更新但在 200 毫秒这样的一小段时间没有更新时才进行查询。这样我就可以忽略用户不断的高速输入。

谁能告诉我该怎么做?

【问题讨论】:

  • 查看这篇文章。它使用 Jquery UI 自动完成并向其添加模糊搜索。它可能会有所帮助。 tomsquest.com/blog/2011/05/…
  • @bos570,谢谢,我会调查的!

标签: javascript jquery html autocomplete


【解决方案1】:

您可以使用类似的东西进行查询。

var timeouted=null;
$(e).on('change',function(){
    clearTimeout(timeouted);
    timeouted = setTimeout(function(){
        //database query
    }, 200)
})

【讨论】:

    【解决方案2】:

    使用存储为变量的setTimeout(),然后在输入时清除超时并重置。如果经过的时间 >= 所需超时,则进行数据库查询。

    这里的工作示例:https://jsfiddle.net/c2s1sj6f/7/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2015-12-24
      • 2023-04-02
      • 2014-04-23
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      相关资源
      最近更新 更多