用于同步执行的AJAX范围

时间:2018-06-15 23:13:05

标签: javascript ajax

我的问题与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();
}

0 个答案:

没有答案