Jquery 在beforeSend ajax上暂停setinterval的正确方法
我有这个密码Jquery 在beforeSend ajax上暂停setinterval的正确方法,jquery,ajax,setinterval,Jquery,Ajax,Setinterval,我有这个密码 var centerTimer = 0; function startCenterRefresh( refreshTime,position,params ) { centerTimer = setInterval(function() { jQuery.ajax({ type: "POST", url: host+"/forms/refresh-center.php"
var centerTimer = 0;
function startCenterRefresh( refreshTime,position,params ) {
centerTimer = setInterval(function() {
jQuery.ajax({
type: "POST",
url: host+"/forms/refresh-center.php",
beforeSend:function(){ stopCenterRefresh(); },
success: function(){console.log(1);},
complete:function(){startCenterRefresh(refreshTime,position,params);}
});
},refreshTime);
}
function stopCenterRefresh() {
clearInterval( centerTimer );
}
这是在ajax请求的beforeSend上暂停setInterval,然后在ajax请求完成后恢复setInterval的正确方法吗?
我不确定这次处决是否达到了我的预期
您的想法将受到极大的赞赏和奖励
谢谢 clearInterval不会暂停对函数的周期性调用:它会删除它。所以你一接到电话就完全停止了。因此它是无效的
您可能应该做的只是在成功回调中使用setTimeout重新调用ajax调用
例如:
var call = function() {
$.ajax({ ... }).done(function(...){
...
setTimeout(call, refreshTime);
});
};
clearInterval不会暂停对函数的定期调用:它会删除函数。所以你一接到电话就完全停止了。因此它是无效的
您可能应该做的只是在成功回调中使用setTimeout重新调用ajax调用
例如:
var call = function() {
$.ajax({ ... }).done(function(...){
...
setTimeout(call, refreshTime);
});
};
谢谢不过,使用settimeout是另一种方法,以满足我对应用程序的要求。再次感谢:谢谢!不过,使用settimeout是另一种方法,以满足我对应用程序的要求。再次感谢: