[英]Break loop when ajax error
我ajax調用循環內,當文件不存在時,我需要中斷循環。 看起來像這樣:
for(m=1; m<10; m++){
$.ajax({
type: "GET",
url: "/config/" + m + ".xml",
async : false,
dataType: "xml",
success: function(xml) {
alert("File Exist");
},
error: function(xml) {
alert("File not exist");
break;
}
});
}
當我從錯誤功能中刪除中斷時,它將警告“文件不存在”,但是當我離開該中斷時,它將完全中斷整個腳本。 我只需要在文件不存在時打破循環。
我最好使用這樣的東西:
(function loadConfig(n) {
$.ajax({
type: "GET",
url: "/config/" + m + ".xml",
dataType: "xml",
success: function (xml) {
alert("File Exist");
if (n < 9) loadConfig(n + 1);
},
error: function (xml) {
alert("File not exist");
}
});
})(0);
這將發出非阻塞請求,通常對UX更好。
var m=1;
while(m<10){
$.ajax({
type: "GET",
url: "/config/" + m + ".xml",
async : false,
dataType: "xml",
success: function(xml) {
alert("File Exist");
m++;
},
error: function(xml) {
alert("File not exist");
m=10;
}
});
}
您應該考慮使用while
循環添加另一個條件(即使您也可以在for
循環條件中這樣做)
var m = 1, fileExists = true;
while ( m<10 && fileExists ){
$.ajax({
type: "GET",
url: "/config/" + m + ".xml",
async : false,
dataType: "xml",
success: function(xml) {
alert("File Exist");
},
error: function(xml) {
alert("File not exist");
fileExists = false;
}
});
m++;
}
或使用for循環
var fileExists = true;
for(m=1; m<10 && fileExists; m++){
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.