【发布时间】:2011-10-08 01:55:54
【问题描述】:
我需要一些关于我调用 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 有什么建议可以让它变得更好吗?
谢谢
【问题讨论】:
-
您能否详细说明“页面性能变慢”?究竟是什么问题?打字很慢,与页面交互很慢?
-
嗯,它不会降低我错过的类型的性能,ajax 比 Javascript 慢,所以我会在按下每个键时显示它是否可用,当你虽然它可用时它可以显示你它不可用@mrtsherman 谢谢
-
您正在寻找“去抖动器”。在各种情况下,这已在 SO 上多次回答。这是我不久前给出的一个例子:stackoverflow.com/questions/5041548/…
-
我不能使用 jQuery,这是我的主要问题,我知道有了它,一切都会变得更容易
标签: javascript onkeyup timedelay