php页面加载延迟,直到完成当前页面上的所有ajax调用

时间:2018-06-13 08:51:35

标签: php jquery ajax

我有一个PHP页面(index.php)正在对另一个PHP页面进行一些ajax调用(例如:data1.php)来填充一些包含内容的div。 当我点击另一个菜单项(companies.php)时,(companies.php)页面的加载会延迟,直到(index.php)页面上的所有ajax调用完成为止。

但是我需要在点击其他页面而不是等待时停止所有ajax调用 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

创建一个ajax请求,您可以使用变量来存储它:

var request = $.ajax({
    type: 'POST',
    url: 'url',
    success: function(result){}
});

然后你可以在事件触发器onbeforeunload上中止请求:

request.abort();

您可以使用数组跟踪所有待处理的ajax请求,并在必要时中止它们。

var request = [];
request.push($.ajax(...))

var _abortAllRequests = function () {
    $(request).each(function (i, xhr) { xhr.abort(); });
    request = [];
}

$(window).on("beforeunload", function () { 
    _abortAllRequests();
});