有没有办法在下面的代码中在downloadURL()之外输出所需的mlength?怎么样?
var markers=new Array();
var mlength=0;
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
markers = xml.documentElement.getElementsByTagName("marker");
mlength = markers.length;
alert(mlength); //output is not 0 (ex. 3)
});
alert(mlength); //outputs 0
最佳答案
这是因为按照定义,AJAX是异步的。到alert
执行时,尚未返回AJAX调用。您需要将使用mlength
的所有代码移到成功回调中。
另一个选择是使AJAX请求同步,但这通常不是您想要的,因为它倾向于锁定浏览器,直到收到响应为止。