我有一个PHP页面(index.php)正在对另一个PHP页面进行一些ajax调用(例如:data1.php)来填充一些包含内容的div。 当我点击另一个菜单项(companies.php)时,(companies.php)页面的加载会延迟,直到(index.php)页面上的所有ajax调用完成为止。
但是我需要在点击其他页面而不是等待时停止所有ajax调用
我该如何解决这个问题?
答案 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();
});