在两秒钟之后做一些事情

Tar*_*ain 7 ajax jquery

我只是想实现这一目标.如果用户正在搜索关键字示例"stackoverflow",我只想在此之后发送一个ajax调用.不是每次按任何键.因此,每次按下一个键,我都可以节省很多ajax呼叫.

我试图检查,如果用户在按任意键后没有再按任何两秒,那么我发送ajax呼叫.但我不知道如何使用间隔或设置超时请帮助,希望你能理解我试图解释的内容.谢谢

这是我的小代码.

$(document).ready(function(){
    var counter = 0;
    $("#input").keyup(function(){

        var myInterval = setInterval(function () {
            ++counter;
        }, 1000);

        if(myInterval > 2)
        {
            alert('ajax call going');
            clearInterval(myInterval);
        }
        else
        {
            alert('doing nothing');
        }
    })
})
Run Code Online (Sandbox Code Playgroud)

Har*_*ngh 7

var _changeInterval = null;

$("#input").keyup(function() {
    // wait untill user type in something
    // Don't let call setInterval - clear it, user is still typing
    clearInterval(_changeInterval)
    _changeInterval = setInterval(function() {
        // Typing finished, now you can Do whatever after 2 sec
        clearInterval(_changeInterval)
    }, 2000);

});
Run Code Online (Sandbox Code Playgroud)

注意: 代码取自SO几个月前,不记得链接

编辑:

检查这个jsFiddle.检查代码中的注释并在控制台中输出以获得更好的描述