当前位置: 首页 > 面试题库 >

使用jQuery在失败时重试AJAX请求的最佳方法是什么?

印曜灿
2023-03-14
问题内容

伪代码:

$(document).ajaxError(function(e, xhr, options, error) {
  xhr.retry()
})

更好的是某种指数补偿


问题答案:

像这样:

$.ajax({
    url : 'someurl',
    type : 'POST',
    data :  ....,   
    tryCount : 0,
    retryLimit : 3,
    success : function(json) {
        //do something
    },
    error : function(xhr, textStatus, errorThrown ) {
        if (textStatus == 'timeout') {
            this.tryCount++;
            if (this.tryCount <= this.retryLimit) {
                //try again
                $.ajax(this);
                return;
            }            
            return;
        }
        if (xhr.status == 500) {
            //handle error
        } else {
            //handle error
        }
    }
});


 类似资料:
  • 问题内容: 由于phonegap基于本地html文件,因此它不知道远程服务器的基本URL。我想知道使用jquery为ajax请求设置基本url的最佳方法是什么?有人可以提供样品的链接吗? 目前,我正在考虑使用jquery ajax预过滤器。 问题答案: 当我处理此问题时,我只是将该信息作为数据元素放在标签上。 然后将其用于为给定请求构建正确的URL: 这对我使用Phonegap的经验非常有用。希望

  • 问题内容: 我一直在通过执行以下操作来确保我的AJAX请求成功: 检查状态变量是执行此操作的最佳方法,还是有一种更好的方法来确保请求实际通过?我正在考虑“成功”请求是一个成功命中我要发布到的页面的请求,而不会超时(例如,服务器已关闭,并且在出现故障之前立即进行了AJAX请求)或返回任何404或500错误。 问题答案: 通过这样调用,您将仅自动传递一个函数。 如果请求中出现问题,则甚至不会执行此方法

  • 问题内容: IE中的以下AJAX调用失败。 错误函数返回 没有向服务器发出请求,因此我认为JSON没有问题。 已修复,请参阅#1351389 问题答案: 固定,我将content-type从更改为just plain 。 我讨厌IE :) 另外,为了避免IE超级缓存,请尝试以下操作: 这样,每个请求都是IE获得:D的新网址

  • 问题内容: 我已经看到您可以指定如果ajax请求失败通常要做什么,是否可以让它在某种循环中重试,以便它在停止之前尝试至少x次?我以前使用过此代码: 这将适用于所有AJAX请求(如果我输入错了,请纠正我)。 我想做这样的事情: 这行得通吗?甚至更好:这是正确的方法吗?我会将重试包装在计数系统中,以便不会无限重试。在我的应用程序中,十分之九会正常工作,但是我经常与之交互的API之一有时会返回错误。 任

  • 本文向大家介绍jquery中AJAX请求 $.post方法的使用,包括了jquery中AJAX请求 $.post方法的使用的使用技巧和注意事项,需要的朋友参考一下 使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求。$.post方法是jQuery的实用工具方法。 post和get发送方式的特点, GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见; GET 方法

  • 我有父母 - 我现在的问题是:有没有一个更好的解决方案来告诉我的应用程序,在指定的次数或重试次数后,上传参与者失败了。尤其是为演员存储发送者的地图感觉有点别扭。