在jQuery中延迟关键输入的ajax调用

时间:2011-01-30 09:50:38

标签: jquery

我正在为文本输入构建一个类似自动完成的脚本。 为了避免多次不必要的ajax调用,我想在用户停止输入文本1秒后才启动ajax调用。这样我就会为每个按下的键保存一些开销调用。如何使用jQuery实现这一目标?

谢谢,

乔尔

3 个答案:

答案 0 :(得分:7)

使用debounce插件或 - 更好记录的doTimeout插件。

答案 1 :(得分:2)

你可以尝试这样的事情。我上面还没玩过。只使用普通的js。

var keyUpTime = 1000; // 1 sec
var keyUpTimeout = null;
$('input[type=text]').keyup( function(e) {
    clearTimeout(keyUpTimeout);
    keyUpTimeout = setTimeout(function() { sendAjax(); }, keyUpTime);
});
function sendAjax() {
    alert('Send it!');
}

答案 2 :(得分:2)

还有另一个jquery插件。它适用于我a link