[英]How to know that the ajax last response has been reached?
我試圖捕獲/知道最后一次達到200(成功)的時間,然后執行某些操作,即退出。
我怎么知道它最后一次達到200?
這是我的下面的代碼
//主函數whihc調用save和checkstatus函數
$(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);
}
});
});
});
});
有一個關於重試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;
}
checkServerStatus().then(function() {
// success!
}, function() {
// reached retry limit :(
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.