Tay*_*Mac 5 javascript jquery jquery-selectors
嘿程序员,我已经删除了下面我的功能中的所有内容,只是准确定位了我需要的帮助......
调用keyup事件后,reloadContent函数将进行ajax调用以从数据库中收集新数据.
唯一的问题是,我的服务器正在超载,因为在调用该函数的每个keyup之后,keyup事件没有延迟.
在调用reloadContent函数之前,我需要一种方法来延迟,例如1秒.这样它就不会运行4次(当用户键入john时),但只有1次用户输入(john)后,假设它们可以输入超过1个字符/秒.
$('#searchinput').live('keyup',function() {
reloadContent(); //execute load function
});
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏
您可以在keyup处理程序中设置超时,并使用jQuery的data()工具将其id与元素相关联.这样,如果在keyup延迟用完之前再次触发事件,您可以清除现有的超时并安排新的超时:
$("#searchinput").live("keyup", function() {
var $this = $(this);
var timerId = $this.data("timerId");
if (timerId) {
window.clearTimeout(timerId);
}
$this.data("timerId", window.setTimeout(reloadContent, 1000));
});
Run Code Online (Sandbox Code Playgroud)