ajax的执行顺序,是先执行onreadystatechange这个,还是先执行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 浏览器执行代码
xmlhttp=new XMLHttpRequest();

}
else
{

// IE6, IE5 浏览器执行代码
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>

阅读 2.6k
1 个回答

先执行open函数。

onreadystatechange是一个状态监测函数,ajax请求有0-4五个状态,默认是0(请求未初始化),open()是建立连接的,open打开连接之后,此时ajax的状态变成了1,这是就会执行一次onreadystatechange,当后面连接状态变成2,3,4的时候都会各运行一次onreadystatechange

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进