我有这段代码。
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请求上暂停onSend上的setInterval然后在ajax请求完成后恢复setInterval的正确方法吗? 我不确定我是否满足了我对这次执行的期望。
您的想法将受到高度赞赏和奖励。
谢谢!
答案 0 :(得分:4)
clearInterval
不会暂停对函数的定期调用:它会删除它。所以你在第一次通话时就完全停止了。因此无效。
你可能应该做的只是在成功回调中重新排队(使用setTimeout
)ajax调用。
例如:
var call = function() {
$.ajax({ ... }).done(function(...){
...
setTimeout(call, refreshTime);
});
};