我有一些(可能)长时间运行的ajax调用,如果用户导航到另一个页面,我想要中止这些调用。以下jQuery代码在导航离开页面时对所有挂起的XMLHttpRequest对象调用abort:
$.ajaxSetup({
beforeSend: function(xhr) {
$(window).bind('beforeunload', function() {
xhr.abort();
});
}
});
在一个测试用例中,我强制让服务器端的操作等待10秒钟。使用Firebug,我确认了上述代码确实会导致当我点击页面上的任何链接时所有未决的ajax调用立即停止。但是,浏览器仍然要等待完整的10秒钟才能进入下一个页面。IE似乎表现出相同的行为。这是一种已知的浏览器行为吗?在这种情况下,有什么我可以做来允许用户立即离开页面吗?提前感谢。