我的ajax功能每15秒工作一次。我想在2分钟后停止它。
我该怎么做?
module.service('<Feature>Store', /*Definition*/)
答案 0 :(得分:5)
使用clearInterval
,clearInterval()
方法会清除使用setInterval()
方法设置的计时器。
var request;
var _timer = setInterval(function() {
request = $.ajax({
...
});
}, 15 * 1000);
setTimeout(function() {
clearInterval(_timer);
request.abort(); // If you want to abort the xhr which are still executing after 2 minutes
}, 2 * 60 * 1000);
&#13;
答案 1 :(得分:1)
var t=0;
var i=15000;
var m=Math.abs( 2 * 60 * 1000 );
var tmr=window.setInterval( function () {
var request = $.ajax({ /* do something */ });
t+=i;
if( t >= m ) clearInterval( tmr );
}, i );
注意到@Jay!
与@void发布的答案几乎相同 - 除了不杀死活动的ajax请求。要取消间隔,必须将其指定为变量,在调用clearInterval
方法时可以引用该变量。