使用 W3School 示例 ( https://www.w3schools.com/js/js_ajax_intro.asp ):
<!DOCTYPE html>
<html>
<body>
<div id="demo">
<h1>The XMLHttpRequest Object</h1>
<button type="button" onclick="loadDoc()">Change Content</button>
</div>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
</script>
</body>
</html>
有人可以解释一下为什么在设置innerHTML后会发生GET操作吗?
从逻辑上讲,我习惯了从上到下进行的语言,一步一步地处理每一行代码。
当我第一次阅读本文时,我假设 demo 元素的innerHTML 将为空,并且没有任何操作将innerHTML 重新设置为 的结果ajax_info.txt 跟随服务器请求。在后端语言中考虑这一点,如果innerHTML是一个变量,则必须更新它,最后一条语句可能如下所示:
document.getElementById("demo").innerHTML =
this.responseText;
使用变量的伪代码示例:
- var x = '' 或 NULL;
- var y = 从服务器上的文件中获取文本;
- var x = y;
最佳答案
onreadystatechange
是一个监听器,它不会立即执行,而是监听该事件的XHR请求。
当事件被触发时,例如当服务器返回响应时,代码将被执行。
关于javascript - AJAX:设置innerHTML后获取请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641691/