无法停止从setTimeout调用的AJAX请求

时间:2013-07-11 14:16:27

标签: jquery

我已经看过许多关于使用.abort()函数(例如this post)中止AJAX请求的帖子,但它对我不起作用。

我使用setTimout在每30秒后重复进行一次AJAX调用,并且我希望根据条件停止重复调用。

我做错了什么或者.abort()被弃用了吗?我正在使用jquery版本1.9.1。

1 个答案:

答案 0 :(得分:1)

而不是使用:

var xhr = null;
ajaxOfTheSort = function
(
   xhr = $.ajax
   (
      success : function()
      {
         /* Do something */ 
         setTimeout( ajaxOfTheSort, 30000 );
      }
   );
)

if (/* condition */)
   xhr.abort();

尝试使用setInterval():

var oInterval = setInterval
(
    function()
    {
       if (/* condition */)
          clearInterval( oInterval );
       else
          $.ajax
          (
             success : function() { /* Do something */ }
          );
    },
    300000
)