当ajax请求成功完成时,每秒执行ajax

时间:2015-11-11 08:22:31

标签: jquery ajax

有人可以帮助我,我想在ajax请求成功完成后每秒执行ajax,我的问题是ajax继续执行,即使它还没有准备好。

这是我的代码:

$(document).ready(function () {
        process();
        function process(){
            $.ajax({
                type: "POST",
                url: "/AjaxAvailableSeats",
                async: false,
                success: function (d) {
                    //alert(f_code);
                    $('#available_seatResult').html(d);
                    setTime();
                },
                error: function (req, status, errorObj) {
                    alert(errorObj.toString());
                }
            })
        }
        function setTime(){
            setTimeout(process, 1000);
        }
});

2 个答案:

答案 0 :(得分:0)

process();

function process() {
    $.ajax({
        type: "POST",
        url: "/AjaxAvailableSeats",
        async: false,
        success: setInterval(function () {
            process();
        }, 1000),
        error: function (req, status, errorObj) {
            alert(errorObj.toString());
        }
    });
}

你只能再次成功调用函数本身,延迟1秒(1000毫秒)

答案 1 :(得分:0)

只有在上一个ajax完成后才会执行下一个ajax:

function process(){
     return $.ajax({ .... });
}

var request = process();

var interval = setInterval(function(){
    if(request.readyState == 4 && request.status == "200"){
        request = process();
    }else if(request.status != "200"){
        clearInterval(interval);
        alert("ajax error");
    }
},1000);