Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops - Fatal编程技术网

Javascript ajax错误时中断循环

Javascript ajax错误时中断循环,javascript,loops,Javascript,Loops,我在循环内调用ajax,当文件不存在时,我需要中断循环。看起来是这样的: for(m=1; m<10; m++){ $.ajax({ type: "GET", url: "/config/" + m + ".xml", async : false,

我在循环内调用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;
                        }
                    });
                }   
for(m=1;m
var m=1;
而(m
var)m=1;

虽然(m您应该考虑使用<代码>而Road)添加另一个条件(即使您在<代码>中也可以使用< < /Cult>循环条件>

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++;
}
var m=1,fileExists=true;

虽然(m您应该考虑使用<代码>而Road)添加另一个条件(即使您在<代码>中也可以使用< < /Cult>循环条件>

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++;
}
var m=1,fileExists=true;

而(m我最好用这样的东西:

(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);
(函数loadConfig(n){
$.ajax({
键入:“获取”,
url:“/config/”+m+.xml”,
数据类型:“xml”,
成功:函数(xml){
警报(“文件存在”);
如果(n<9)loadConfig(n+1);
},
错误:函数(xml){
警报(“文件不存在”);
}
});
})(0);
这将产生一个非阻塞请求,这通常对用户体验更好


我最好用这样的方式:

(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);
(函数loadConfig(n){
$.ajax({
键入:“获取”,
url:“/config/”+m+.xml”,
数据类型:“xml”,
成功:函数(xml){
警报(“文件存在”);
如果(n<9)loadConfig(n+1);
},
错误:函数(xml){
警报(“文件不存在”);
}
});
})(0);
这将产生一个非阻塞请求,这通常对用户体验更好


实际上,您的总体方法似乎很模糊。您确定要在
for()循环中设置10个请求吗?
为什么不发送一个请求,让服务器处理其余的请求呢?实际上,您的总体方法似乎很模糊。您确定要在
for()循环中设置10个请求吗
loop?为什么不发送一个请求,让服务器处理其余的请求?async=false,请求是同步的。现在在编辑(删除异步)后,我100%同意。这是更好的解决方案。async=false,请求是同步的。现在在编辑(删除异步)后,我100%同意。这是更好的解决方案。哦,是的,把m=10弄错是一个很好的主意……非常感谢。现在效果很好。设置
m=10
不是解决方案,而是
async:false
!async=false是问题本身的一个假设。我没有添加它,我只是注意到了。哦,是的,把m=10弄错了n error是一个很好的想法…非常感谢。现在它工作得很好。设置
m=10
不是解决方案,而是
async:false
!async=false是问题本身的假设之一。我没有添加它,我只是注意到了它。是的,对于while/for循环构造,您需要设置
async:false
其他wise for循环不会在您期望的地方中断:)同样的问题,因为我犯了一个错误
fileExist
更正为
fileExists
true,而while/for循环构造需要设置
async:false
否则for循环不会在您期望的地方中断:)同样的问题,因为我犯了一个错误
fileExists
更正为
fileExists