JavaScript onKeyUp 时间延迟

标签 javascript onkeyup timedelay

我需要一些关于我调用 onKeyUp 的 JavaScript 函数的帮助,它是一个 Ajax 函数,但每次我写任何字符时它都会调用该函数并且它会降低页面性能并且它每次都会检查,它是一个用户检查数据库。

我试过这个:

 var timer;
 function chk_me(){

   clearTimeout(timer);
   timer=setTimeout(function validate(){...},1000);
}

但是我的验证函数有一个参数,所以我无法传递它,我这样调用函数:

<input type="text" name="usuario" id="usuario" class="required" onKeyUp="chk_me();" minlegth="4" value=/> 

是吗?我该怎么办?

这是我的第一个问题,希望大家能理解

谢谢, 阿尔贝托

谢谢大家,因为我是新手,所以我不能用不同的答案来做,所以我用解决方案编辑了我的问题。 我发现这个:http://bytes.com/topic/javascript/answers/451142-need-advice-acting-only-last-onkeyup-event-series并使用最后一个答案方法并添加一些代码,我把代码留给你,就像它说这不是最好的方法但是有效所以如果你有其他方法我会很感激并在这里使用它是:

var keyCount = 0;
var timeoutCount = 0;

function handleKeyUp() // keyup handler
{
keyCount++;
setTimeout("compareCounts()", 500);
}

function compareCounts()
{
var usuario = document.profileForm.usuario.value;
timeoutCount++;
if (keyCount == timeoutCount)
{
xajax_checaUsuario(usuario);
}
}

所以我以这种方式接受 var 有什么建议可以让它变得更好吗?

谢谢

最佳答案

不要将 validate 直接传递给 setTimeout,而是从匿名函数中调用它:

var timer;
function chk_me(arg) {
    clearTimeout(timer);
    timer = setTimeout(function () {
        validate(arg);
    }, 1000);
}

关于JavaScript onKeyUp 时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740107/

相关文章:

javascript - 在 jquery/javascript 中获取、设置 session 值

javascript - jQuery,keyup 事件未触发

ios - UNCalendarNotificationTrigger 未启动

javascript - 真正的弱引用事件发射器/调度器 : is it possible?

javascript - 为什么 fetch() 超出了最大调用堆栈?

JQuery keyup 阻止 Chrome 中的文本选择。怎么解决?

c - 在c中实现时间延迟

javascript - 如何减慢 JavaScript 中 for 循环的执行速度?

javascript - Socket.io 发送给房间里的每个人,除了发送者

javascript - 如何在page_load中添加javascript