gpt4 book ai didi

javascript - 为什么 .innerHTML 在 xmlhttp.open() 和 .send() 之前更改?

转载 作者:行者123 更新时间:2023-11-28 13:52:14 24 4
gpt4 key购买 nike

我正在学习使用 xmlhttprequest/AJAX。在 w3schools 的示例代码中,我不明白为什么这一行:

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

在此之前:

 xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

按照我的想法,您应该在有任何responseText 可以执行任何操作之前发送 GET 请求。我的理解哪里有错误?

<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","demo_get.asp",true);
xmlhttp.send();
}
</script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>

</body>
</html>

最佳答案

有问题的行位于 xmlhttp.onreadystatechange 内部,它是一个函数。注意它的使用方式:

xmlhttp.onreadystatechange = function ()
{
...
}

在本例中,它是一个回调函数 - 当 ajax 请求(又名 xmlhttp.send())完成时调用它。

在深入了解 ajax 之前,您可能需要温习一下 javascript。

关于javascript - 为什么 .innerHTML 在 xmlhttp.open() 和 .send() 之前更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com