Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何知道已经到达ajax的最后一个响应?_Javascript_Ajax_Jquery - Fatal编程技术网

Javascript 如何知道已经到达ajax的最后一个响应?

Javascript 如何知道已经到达ajax的最后一个响应?,javascript,ajax,jquery,Javascript,Ajax,Jquery,我试图捕捉/知道最后一次达到200(成功)的时间,并做一些事情,例如退出 我怎么知道它最后一次达到了200 下面是我的代码 //调用save和checkstatus函数的Main函数 $(function () { $("#saveChange").click(function () { save().complete(function (jqXHR, responseText) { var stat = jqXHR

我试图捕捉/知道最后一次达到200(成功)的时间,并做一些事情,例如退出

我怎么知道它最后一次达到了200

下面是我的代码

//调用save和checkstatus函数的Main函数

   $(function () {
        $("#saveChange").click(function () {
            save().complete(function (jqXHR, responseText) {

                var stat = jqXHR.status;
                if (stat == 200) {
                    console.log("inside 200");

                    setTimeout(function () {
                        checkServerStatus().complete(function (jqXHR, responseText) {

                            if (jqXHR.status == 200) {
                                console.log("inside 200");
                                setTimeout(function () {
                                    checkServerStatus().complete(function (jqXHR, responseText) {
                                        count = 0;
                                        count++;
                                        max = 10;
                                        if ((count <= max) && (jqXHR.status == 200)) {
                                            checkServerStatus();
                                            //alert(count);
                                        }

                                    });
                                    if (jqXHR.status == 500) {
                                        // alert(" 500 setimeout inside 500 status "+jqXHR.status + responseText);  
                                    } else if (jqXHR.status == 200) {
                                        // alert(" 200 setimeout inside 200 status "+jqXHR.status + responseText);  
                                    }
                                }, 9000);

                            } else if (jqXHR.status == 500) {
                                // 500 error no submission
                                console.log("inside 500");
                                //alert(" 300 setimeout inside 500 status "+jqXHR.status + responseText);   
                                checkServerStatus();
                            } else {
                                alert("else");
                            }
                        });
                    }, 6000);
                } 

            });


        });
    });

    });
$(函数(){
$(“#保存更改”)。单击(函数(){
save().complete(函数(jqXHR,responseText){
var stat=jqXHR.status;
如果(统计=200){
控制台日志(“内部200”);
setTimeout(函数(){
checkServerStatus().complete(函数(jqXHR,responseText){
如果(jqXHR.status==200){
控制台日志(“内部200”);
setTimeout(函数(){
checkServerStatus().complete(函数(jqXHR,responseText){
计数=0;
计数++;
最大值=10;

如果((count关于重试ajax请求有一个很好的讨论。我建议您自己处理延迟。通过这种方式,您可以创建一个虚拟延迟,根据自己的意愿解决或拒绝它,然后像往常一样进行链操作

function checkServerStatus() {
    var dfd = new $.deferred();

    $.ajax({
         url : 'ajaxurl.json',
         tryCount : 0,
         retryLimit : 3,
        success : function(json) {
            dfd.resolve();
        },
        error : function(xhr, textStatus, errorThrown ) {
            if (this.tryCount++ <= this.retryLimit) {
                //try again
               $.ajax(this);
               return;
            }
            dfd.reject();
        }
    });
    return dfd;
}
查看jQuery.ajaxSetup()-
checkServerStatus().then(function() {
    // success!
}, function() {
   // reached retry limit :(
});