javascript 保證ajax按順序執行
程式中有時會用到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>