考虑在加载页面时运行的代码:
if ($('#content-recommendation').length) {
$.ajax({
url:'/get_content_recommendation/' + gon.item_id + '.js',
type:"get"
});
}
此请求大约需要15秒才能完成开发。如果我转到另一个页面,我必须等到Ajax完成,所以如何取消该Ajax请求?
答案 0 :(得分:1)
您可以使用abort()方法中止请求 - 但要注意它只会中止客户端侦听器的执行,任务初始化的服务器端进程仍将运行
//in a shared scope
var xhr;
//then
if ($('#content-recommendation').length) {
xhr = $.ajax({
url: '/get_content_recommendation/' + gon.item_id + '.js',
type: "get"
}).always(function () {
xhr = undefined;
});
}
//later before moving to the new page
if (xhr && xhr.readyState != 4) {
xhr.abort();
}
答案 1 :(得分:0)
您可以使用abort()
取消当前请求。详细说明How to cancel/abort jQuery AJAX request?