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是另一种方法,以满足我对应用程序的要求。再次感谢: