Zak*_*Zak 3 javascript ajax jquery asynchronous
我正在开发一个涉及循环数组的站点,对每个元素使用jQuery ajax调用.这是一个简化版本:
var myArray=new Array("El1","El2","El3","El4");
for(var i=0; i<myArray.length; i++){
$.ajax({
url: 'page.php?param='+myArray[i],
success: function(data){
//doing stuff with the data
//this needs to complete before the loop advances
}
});
}
Run Code Online (Sandbox Code Playgroud)
我需要在完成循环之前完成每个调用.我尝试了设置async:false,这使得循环正常工作,但这会占用页面的其余部分,并导致很多滞后.有没有什么方法可以防止循环推进,直到调用完成,但仍然能够异步运行其他脚本?
var idx = 0;
var urls = ["El1","El2","El3","El4"];
var doNextRequest = function() {
$.ajax({
url: 'page.php?param=' + urls[idx],
success: function(data) {
// ...
idx++;
if (idx < urls.length) {
doNextRequest();
}
}
});
}
doNextRequest();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |