鍍金池/ 問答/HTML/ ajax的執(zhí)行順序,是先執(zhí)行onreadystatechange這個,還是先執(zhí)行

ajax的執(zhí)行順序,是先執(zhí)行onreadystatechange這個,還是先執(zhí)行open

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{

document.getElementById("txtHint").innerHTML="";
return;

}
if (window.XMLHttpRequest)
{

// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼
xmlhttp=new XMLHttpRequest();

}
else
{

// IE6, IE5 瀏覽器執(zhí)行代碼
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}
xmlhttp.onreadystatechange=function()
{

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
  document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}

}
xmlhttp.open("GET","/try/ajax/gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<h3>在輸入框中嘗試輸入字母 a:</h3>
<form action="">
輸入姓名: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>提示信息: <span id="txtHint"></span></p>

</body>
</html>

回答
編輯回答
溫衫

先執(zhí)行open函數(shù)。

onreadystatechange是一個狀態(tài)監(jiān)測函數(shù),ajax請求有0-4五個狀態(tài),默認(rèn)是0(請求未初始化),open()是建立連接的,open打開連接之后,此時ajax的狀態(tài)變成了1,這是就會執(zhí)行一次onreadystatechange,當(dāng)后面連接狀態(tài)變成2,3,4的時候都會各運行一次onreadystatechange

2017年3月19日 05:23