javascript - keyup(function()) ajax 请求延迟 - jQuery

标签 javascript ajax jquery

我有一个 jQuery Ajax 请求,我想通过文本输入来调用它,因此我将它嵌套在 keyup(function() 中。这工作得很好。

$("#text_box").keyup(function() {
 //AJAX REQUEST
});

但这有时会出现问题。当我非常快地输入一些文本时,我得到输入单词的结果,其中省略了原始输入单词的一些最后字母(可能是浏览器的一些故障)。我希望当一秒钟没有输入事件时发送 ajax 请求,我的意思是,如果我输入文本非常快并休息一秒钟(意味着我进行了输入)。我怎样才能做到这一点?

最佳答案

听起来好像您从之前的 ajax 调用中获得了结果。使用带有 setTimeoutclearTimeout 的计时器。

var timer = null;

$("#text_box").keyup(function() {
  if(timer) {
    clearTimeout(timer);
  }

  timer = setTimeout(someFunction, someDelay);
});

其中 someFunction 是执行 ajax 调用的函数,someDelay 是用户键入后执行调用之前要等待的延迟(以毫秒为单位)。

关于javascript - keyup(function()) ajax 请求延迟 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832237/

相关文章:

javascript - Mootools 1.3 和 Fx.Styles

javascript - 如何循环事件点击获取每个a的属性?

asp.net - 如何使我的 Modal Popup Extender 成为模态? (禁用背景)

javascript - jQuery 是否具有与 Prototype 的 Element.identify 等效的功能?

javascript - HTML5 必需属性不适用于 AJAX 提交

javascript - 使用 jQuery 使 session 在长时间运行的过程中保持事件状态

javascript - 如何使用 JavaScript 获取页面的查询字符串?

javascript - 完全可访问且风格化的选择框

php - 查询 SQL 在 ajax jquery 中不起作用

python - Django:如何动态加载表单到当前html页面