Javascript 是否为AJAX执行While循环?
我试图循环一个ajax请求10次。我注意到一些奇怪的错误,比如int是10,10倍。我已经搜索并发现它与AJAX异步相关。我希望有一些东西可以等待ajax请求完成,然后继续 提前谢谢Javascript 是否为AJAX执行While循环?,javascript,jquery,ajax,loops,asynchronous,Javascript,Jquery,Ajax,Loops,Asynchronous,我试图循环一个ajax请求10次。我注意到一些奇怪的错误,比如int是10,10倍。我已经搜索并发现它与AJAX异步相关。我希望有一些东西可以等待ajax请求完成,然后继续 提前谢谢 do{ var int=0; $.ajax({...}, success:function(response){ int++; }, }); alert(int); }while(int<10); do{ var int=0; $.ajax({…}, 成功:函
do{
var int=0;
$.ajax({...},
success:function(response){ int++; },
});
alert(int);
}while(int<10);
do{
var int=0;
$.ajax({…},
成功:函数(响应){int++;},
});
警报(int);
}while(int您可以将参数async:false
设置为ajax
对象
$.ajax({
url: $(this).attr('href'),
type: 'GET',
async: false,
error: function(){
return true;
},
success: function(msg){
}
});
您可以将参数async:false
设置为ajax
对象
$.ajax({
url: $(this).attr('href'),
type: 'GET',
async: false,
error: function(){
return true;
},
success: function(msg){
}
});
如果您的success
处理程序引用的是int
,那么在运行int
时,它将始终为0,因为这是在循环完成很久之后
如果确实希望调用连续运行,每次使用不同的值,请将调用移动到函数,并根据需要从ajax成功处理程序调用它:
function myAjax(int) {
if (int >= 10)
return;
$.ajax({ //...
success:function(response){
int++;
// whatever we need to do with int and the response
myAjax(int);
}
});
}
myAjax(0);
如果您的success
处理程序引用的是int
,那么在运行int
时,它将始终为0,因为这是在循环完成很久之后
如果确实希望调用连续运行,每次使用不同的值,请将调用移动到函数,并根据需要从ajax成功处理程序调用它:
function myAjax(int) {
if (int >= 10)
return;
$.ajax({ //...
success:function(response){
int++;
// whatever we need to do with int and the response
myAjax(int);
}
});
}
myAjax(0);
我相信这就是您正在寻找的代码:
for (var int = 0; int < 10; int++) {
(function (int) {
$.ajax({
url : 'process.php',
success : function() {
alert("TEST");
}
});
})(int);
}
for(var int=0;int<10;int++){
(功能(内部){
$.ajax({
url:'process.php',
成功:函数(){
警报(“测试”);
}
});
})(int);
}
以下是一些链接,提供了有关此操作的更多信息:
我相信这就是您要寻找的代码:
for (var int = 0; int < 10; int++) {
(function (int) {
$.ajax({
url : 'process.php',
success : function() {
alert("TEST");
}
});
})(int);
}
for(var int=0;int<10;int++){
(功能(内部){
$.ajax({
url:'process.php',
成功:函数(){
警报(“测试”);
}
});
})(int);
}
以下是一些链接,提供了有关此操作的更多信息:
将警报移动到success函数中是否符合您的要求?根据定义,ajax是异步的。让它等待会违背它的目的。jquery when是一个更好的选择。@anu ajax并不总是异步的。是的,ajax的主要用途是异步,但您仍然可以在ajax请求中放入async:false
。是否移动警报成功函数是否适合您想要的行为?根据定义,ajax是异步的。让它等待会违背它的目的。jquery when是一个更好的选择。@anu ajax并不总是异步的。是的,ajax的主要用途是异步,但您仍然可以在ajax请求中放入async:false
。