程序中有时会用到ajax来获取数据,获取数据会有一定延时,为保证在获取到数据后才干某事我们可以这样处理:在ajax的回调处理函数中,在获取到数据后才调用某函数。
即使是页面有多个ajax调用,我们也可以通过这种方式保障执行顺序(在真实应用中很可能会出现要求ajax按顺序执行取数据的情况)。
<script language="javascript" type="text/javascript"> var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); function getCustomerInfo() { var phone = document.getElementById("phone").value; var url = "/cgi-local/lookupCustomer.php?phone=" + escape(phone); request.open("GET", url, true); request.onreadystatechange = updatePage; request.send(null); } function updatePage() {if (request.readyState==4 && request.status==200) { //document.getElementById("txtHint").innerHTML=request.responseText; callNextFn(request.responseText);//获取数据后调用函数执行下个ajax调用 }
}
function callNextFn(){
var arr = arguments;
// process arguments
//send next ajax request
}
</script>