【发布时间】:2011-08-02 22:29:13
【问题描述】:
我正在开发一个涉及循环数组的网站,对每个元素使用 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
}
});
}
在推进循环之前,我需要完成每个调用。我尝试设置async:false,这使循环正常工作,但这会阻止页面的其余脚本并导致很多滞后。有什么方法可以阻止循环继续进行直到调用完成,但仍然能够异步运行其他脚本?
【问题讨论】:
-
只需进行一次 ajax 调用。进行 n 次小型 ajax 调用效率低下
-
Raynos 有一个很好的观点,尽管您的业务逻辑可能需要其他方式。
标签: javascript jquery ajax asynchronous