【问题标题】:Stop Ajax Request in jQuery After Change The Page更改页面后在 jQuery 中停止 Ajax 请求
【发布时间】:2014-08-25 03:42:30
【问题描述】:

考虑在页面加载时运行的这段代码:

if ($('#content-recommendation').length) {
    $.ajax({
    url:'/get_content_recommendation/' + gon.item_id + '.js',
    type:"get"
  });
}

这个请求在开发过程中大约需要 15 秒才能完成。如果我转到另一个页面,我必须等到 Ajax 完成,那么如何取消该 Ajax 请求?

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax jquery-ui


    【解决方案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();
    }
    

    How to cancel/abort jQuery AJAX request?

    【讨论】:

      【解决方案2】:

      您可以使用abort() 取消当前请求。详细说明看这里How to cancel/abort jQuery AJAX request?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多