2012-03-20 12 views
0

私はCOBOLのような手を使ってプログラミングをしていましたが、今はAJAXを学びたいと思っています。AJAXの新機能と説明が必要

w3schoolでこのコードを見て、次の質問がありますか?

質問: 1. xmlhttp.onreadystatechange = function()はどのように評価されるのですか?戻り値が評価される前に、xmlhttp.open()およびxmlhttp.send()を実行する必要がありますか?

<html> 
<head> 
<script type="text/javascript"> 
function loadXMLDoc() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","ajax_info.txt",true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<div id="myDiv"><h2>Let AJAX change this text</h2></div> 
<button type="button" onclick="loadXMLDoc()">Change Content</button> 

</body> 
</html> 
+0

jQueryを使い慣れていなくても、少なくとも簡単にajaxingを使用することを強くお勧めします。 – Ashraf

答えて

0

JAXは非同期です。

send()に電話すると、ブラウザはバックグラウンドでリクエストを送信します。

サーバが応答すると、ブラウザはonreadystatechangeハンドラを呼び出します。これはコードの残りの部分が実行された後にしばらく時間がかかります。

+0

したがって、サーバーの応答が遅れた場合、応答が送信されるまで待機しますか? – user1050619

+0

@ user1050619:いいえ。何も待つことはありません。後でさえもコールバックは呼び出されません。 – SLaks

関連する問題