2013-07-24 69 views
0

很顯然,與服務器交談必須首先向服務器發送請求,然後收到響應。然而,它出現在這段代碼中,你首先收到響應,然後在下一行發送請求 - 這裏發生了什麼?JavaScript中運行命令的順序

xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
     } 
     } 
    xmlhttp.open("GET","gethint.php?q="+str,true); 
    xmlhttp.send(); 
+0

http://www.w3schools.com/php/php_ajax_php.asp – Daniyal

回答

1

onreadystatechange只是一個聽衆當請求解析時運行。

想象一下,你的朋友正在幫你在郵局收集郵件。你告訴他:

「每當一個工人給你的包,檢查該名稱在包裝上是正確的,然後打開它,組裝的內容,並在我家把它帶回我現在去郵局!「

你已經告訴你的朋友做什麼的時候,他得到你的郵件,然後送他出門去收集。

+0

這太棒了! – Daniyal

5

它不首先接收響應,它只是建立在接收響應做什麼(這是從來沒有馬上,因爲這是一個異步操作)。這裏的順序實際上並不重要。