在1200(jQuery超时)的间隔之后,在页面的html中有一个超时函数ajax,并且直到用户在超时完成之前或之后按下Enter键并且html为页面被不必要地调用两次。
该函数调用了输入的onkeyup
var timeoutReference;
function instant(){
var val=some filters;
if(val!=''){
if(timeoutReference)clearTimeout(timeoutReference);timeoutReference=setTimeout(function(){
ajaxHTML();
},1200);
}
}
在输入
时调用相同的功能$(document).on('keypress',function(e){
if(e.keyCode==13){
ajaxHTML();
}
});
如果在此之前按下Enter键,我可以添加什么来停止超时功能,或者如何防止同一个HTML文档被调用两次?感谢
答案 0 :(得分:0)
您已经发布了所需的所有代码。只需在用户按下Enter键时清除计时器,这将阻止回调被触发。
if(e.keyCode==13){
clearTimeout(timeoutReference);
ajaxHTML();
}
目前,当用户按下回车键时,您的代码会调用ajaxHTML()
,但可能已排队等候通过setTimeout
设置的instant()
进行调用 - 结果为您比方说,在两个AJAX调用中。