jquery - AJAX超时是否有必要中止?

标签 jquery

我有一个 ajax GET 请求,超时时间为 2 秒。如果请求超时,我不希望请求仍然卡在那里。 2秒的时候,我只想停止一切。

我想知道如果已达到超时,是否有必要调用abort(),或者达到超时阈值是否会自动中止一切...?

request = $.ajax({
            type: 'GET',
            url: url,
            timeout: 2000, 
            success: function (data) {

                // do some stuff

            },
            error: function(x, t, m) {

                if(t==="timeout") {
                    request.abort(); // is this necessary?
                    // do some other stuff

                } // end if timeout
            } // end error function
        }); // end ajax 

最佳答案

不,没有必要。在内部,当超时时,jQuery 将中止 XHR。

如果您检查source of $.ajax你可以看到它的实际效果:

// Timeout
if (s.async && s.timeout > 0) {
    timeoutTimer = setTimeout(function () {
        jqXHR.abort("timeout");
    },
    s.timeout);
}

关于jquery - AJAX超时是否有必要中止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25230693/

相关文章:

jquery - 脚本数据库中的逗号

javascript - Kendo 网格插入带有自定义类的新行

jquery - 如何使用 jQuery 检查选​​项是否被选中

javascript - 如何在滚动特定的 div 时切换显示/隐藏固定元素?

javascript - 等待动画完成

javascript - downloadUrl 函数不适用于使用 opencart 创建谷歌地图定位器

jquery - 如何使用 anchor 和菜单事件样式禁用和恢复页面上的 jQuery 路径点

javascript - Highcharts 的格式类别(x 轴)

javascript - 如何对ajax返回数据的url进行编码然后附加到html?

jquery - Django 1.5 CSRF Ajax