javascript - 全局配置所有 $.ajax 请求以支持超时重试

标签 javascript jquery ajax cordova backbone.js

我需要一种方法来使用 $.ajaxSetup 全局设置某种超时功能,这将允许我的 Phonegap 应用程序在每次因互联网连接不良而超时时继续重试 ajax GET 或 POST。

我使用 Backbone.js,所以大多数 jquery 插件对此不起作用,我会帮助编写一段处理重试的全局代码。

谢谢。

最佳答案

您可以使用 jQuery.ajaxSetup(options) .

Set default values for future Ajax requests. Its use is not recommended.

示例

$.ajaxSetup({
  timeout: TimeoutValue
});

除此之外,如果您想在超时时再次执行调用,我建议您为 ajax 调用创建包装器。

function myAjax(options){
    var myOptions = {
        timeout: TimeoutValue,
        error: function( jqXHR, textStatus, errorThrown) {
            //textStatus can one of these "timeout", "error", "abort", and "parsererror"
            if(textStatus === "timeout") {
                //Recall method once again
                myAjax(options)
            }
        }           
    };

    options = $.extend(true, myOptions , options);
    $.ajax(options)
}

并且像$.ajax一样使用这个函数

关于javascript - 全局配置所有 $.ajax 请求以支持超时重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25524019/

相关文章:

javascript - 如何使用(选择学生)类(class)条件对学生进行序列化

jquery - 使用 jQuery 动态地将幻灯片添加到 Bootstrap 3 轮播

c# - 将数据数组从 Javascript 传递到 C#

javascript - 使用 jQuery、Ajax 和 PHP 搜索 MySQL 表不起作用

javascript - 如何仅在选项卡/窗口获得焦点时每 5 秒刷新一次页面?

javascript - 如何在 ipad phonegap android eclipse 中关闭水合作用

javascript - 如何使用 JQuery 延迟 10 秒一个接一个地删除每个列表项?

javascript - jQuery 代码仅触发一次

javascript - 了解 JavaScript 中的事件处理和回调

javascript - 如何使用ajax post请求从输入中放入参数?