小编典典

节气门AJAX请求KeyUp和粘贴事件

ajax

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

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

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

谢谢。


阅读 258

收藏
2020-07-26

共1个答案

小编典典

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

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

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

2020-07-26