jQuery - 根据Last Key Press限制服务器命中率?

时间:2010-10-27 22:08:47

标签: javascript jquery timer

我正在研究如何构建能够检测按键的内容以限制功能。

类似的东西:

var LastKeyPress;
function hitTheServer() {
 if LastKeyPress > 2 seconds ago {
    hit the server and do stuff
   LastKeyPress = now();
 }
}
你怎么看?也许这是内置于jQuery?此外,它可能会用于许多功能,并且让它在全局工作可能会很有趣,因此我可以使用更少的代码并应用于多个功能。想法?

由于

3 个答案:

答案 0 :(得分:1)

我会这样说:

var LastKeyPress;
function hitTheServer(){
    n = new Date().getSeconds();
    if (LastKeyPress == undefined || LastKeyPress > n+2){

        //Code

        LastKeyPress = n;
    }
}

答案 1 :(得分:1)

答案 2 :(得分:0)

使用window.setTimeout

相对简单
// Example function to be throttled
function throttledFunction() {
    alert("Two seconds since last keypress");
}

var keypressTimer = null, keypressDelay = 2000;

document.onkeypress = function() {
    if (keypressTimer) {
        window.clearTimeout(keypressTimer);
    }
    keypressTimer = window.setTimeout(function() {
        keypressTimer = null;
        throttledFunction();
    }, keypressDelay);
};