首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >全局中止所有jQuery AJAX请求

全局中止所有jQuery AJAX请求
EN

Stack Overflow用户
提问于 2010-08-11 16:00:27
回答 3查看 25.6K关注 0票数 19

有没有办法在没有request对象句柄的情况下全局中止所有Ajax请求?

我这样问的原因是,我们有一个相当复杂的应用程序,我们使用setTimeOut()在后台运行许多不同的Ajax请求。如果用户单击某个按钮,我们需要暂停所有正在进行的请求。

EN

回答 3

Stack Overflow用户

发布于 2010-08-11 16:05:11

如果没有跟踪所有活动的Ajax请求的句柄,则不能中止这些请求。

但是,如果您正在跟踪它,那么您可以通过循环遍历处理程序并在每个处理程序上调用.abort()来实现。

票数 7
EN

Stack Overflow用户

发布于 2012-12-17 15:22:58

您可以使用以下脚本:

代码语言:javascript
复制
// $.xhrPool and $.ajaxSetup are the solution
$.xhrPool = [];
$.xhrPool.abortAll = function() {
    $(this).each(function(idx, jqXHR) {
        jqXHR.abort();
    });
    $.xhrPool = [];
};

$.ajaxSetup({
    beforeSend: function(jqXHR) {
        $.xhrPool.push(jqXHR);
    },
    complete: function(jqXHR) {
        var index = $.xhrPool.indexOf(jqXHR);
        if (index > -1) {
            $.xhrPool.splice(index, 1);
        }
    }
});

http://jsfiddle.net/s4pbn/3/上查看结果。

票数 5
EN

Stack Overflow用户

发布于 2016-03-25 22:47:33

以下是一个相关问题的答案,它对我很有效:

https://stackoverflow.com/a/10701856/5114

注意第一行,@grr说:“使用ajaxSetup是不正确的”

如果你想自己调用window,而不是像他们那样使用window.onbeforeunload,你可以修改他的回答,将你自己的函数添加到window中。

代码语言:javascript
复制
// Most of this is copied from @grr verbatim:
(function($) {
  var xhrPool = [];
  $(document).ajaxSend(function(e, jqXHR, options){
    xhrPool.push(jqXHR);
  });
  $(document).ajaxComplete(function(e, jqXHR, options) {
    xhrPool = $.grep(xhrPool, function(x){return x!=jqXHR});
  });
  // I changed the name of the abort function here:
  window.abortAllMyAjaxRequests = function() {
    $.each(xhrPool, function(idx, jqXHR) {
      jqXHR.abort();
    });
  };
})(jQuery);

然后,您可以调用window.abortAllMyAjaxRequests();将它们全部中止。确保将.fail(jqXHRFailCallback)添加到ajax请求中。回调将以textStatus的形式'abort‘,这样你就知道发生了什么:

代码语言:javascript
复制
function jqXHRFailCallback(jqXHR, textStatus){
  // textStatus === 'abort'
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3456427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档