有必要实现这样的行为,即当在字段中输入一个新字母时,经过 1 秒并执行某个方法。这需要一个定时器,但是当有快速的字母输入时(比如每秒3个字母),定时器会排队然后顺序执行。
要求有一个计时器,每输入一个新字母,将重新启动,但如果在 1 秒内没有输入字母。然后启动所需的方法。
这是我的代码:
var isTimerWork = false;
var timer = null;
$('#SearchString').on("keyup", function() {
if ($('#SearchString').val().length >= 2 && !IsExtSearch) {
if (timer != null)
clearTimeout(timer);
timer = setTimeout(isTimerWork = true, 1000);
while (!isTimerWork);
GetAutoCompleteData($('#SearchString').val());
}
在我的例子中,每次都会创建一个新的计时器。
更正确地使用setInterval函数,
更正了您的示例: