码迷,mamicode.com
首页 > Web开发 > 详细

超时重试(一)ajax

时间:2018-05-20 16:36:04      阅读:1615      评论:0      收藏:0      [点我收藏+]

标签:设置   就是   参数配置   xhr   两种   $.ajax   text   res   time   

我们使用jquery的ajax,超时重试可以采用两种方式,一种是配置ajax的timeout的参数,另一种就是以setTimeout定时器的方式实现:

1)timeout参数配置方式

var xhr = $.ajax({
            type:‘get‘,
            url: ‘http://localhost:8080/user‘,
            data:{
                id: 1
            },
            timeout: 5000,          // 设置超时时间5秒
            dataType: "json",
            success: function(res) {
                if(res.success) {
                    // 业务处理
                }
            },
            error: function(err) {
                if(err.statusText == ‘timeout‘) {
                    xhr.abort();    // 超时中断请求
                    // 这里可以重新执行请求
                }
            }
        }) 

 

2)setTimeout定时器方式

function retryCallback(){
    var xhr;

    // 设置5秒超时定时器
    var timer = setTimeout(function(){
        // 中断上一个请求
        xhr.abort();
        // 超时重试
        retryCallback();
    }, 5000)

    xhr = $.ajax({
        type:‘get‘,
        url: ‘http://localhost:8080/user‘,
        data:{
            id: 1
        },
        dataType: "json",
        success: function(res) {
            // 未超时则清除定时器
            clearTimeout(timer)
        }
    }) 
}

retryCallback()

超时重试(一)ajax

标签:设置   就是   参数配置   xhr   两种   $.ajax   text   res   time   

原文地址:https://www.cnblogs.com/lay2017/p/9063391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!