我的问题与AJAX请求的范围有关。我在for循环中发出多个AJAX请求。我已将同步参数设置为false,但我想知道是否保证在循环继续之前执行readystate侦听器。下面是一个简单的例子。我希望避免提出同步请求,但我们受限于API提供的参数。
var theArray=[];
function loopFunction(param){
for(i=0;i<param.length;i++){callAjax(); theArray.push(ajaxResponse);}
}
var ajaxResponse;
function callAjax(){
var urlString = "www.theAPI.com";
if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();}
else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status==200) {ajaxResponse = this.responseText;}
};
//false declaration below is where calls set to synchronous
xmlhttp.open("GET",urlString,false);
xmlhttp.send();
}