我想在2分钟后停止ajax请求

时间:2015-12-21 15:51:12

标签: javascript php ajax xmlhttprequest

我的ajax功能每15秒工作一次。我想在2分钟后停止它。

我该怎么做?

module.service('<Feature>Store', /*Definition*/)

2 个答案:

答案 0 :(得分:5)

使用clearIntervalclearInterval()方法会清除使用setInterval()方法设置的计时器。

&#13;
&#13;
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;
&#13;
&#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方法时可以引用该变量。