在KeyUp和粘贴事件上节流AJAX请求

所以我在文本框上的jQuery中的每个keyuppaste事件上调用一个AJAX请求:

  $("#server-label").bind("keyup paste", function() { $.ajax()... }); 

问题是如果用户快速按下键,这就是太多的AJAX请求。 在调用AJAX请求之前,等待用户停止输入一段(比如500ms)的最佳方法是什么。 基本上不要发出AJAX请求,直到没有键或粘贴事件触发500ms。

谢谢。

尝试使用setTimeout()timer var来跟踪它:

 var t; $("#server-label").on("keyup paste", function() { clearTimeout(t); t = setTimeout(function() { $.ajax({/*[...]*/}); //... }, 500); }); 

您也可以使用油门或去抖动,但我认为如果将代码包装在函数对象或字符串中以传递给setTimeout()函数,则认为没有必要。