javascript - AJAX:设置innerHTML后获取请求?

标签 javascript ajax logic innerhtml

使用 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;

使用变量的伪代码示例:

  1. var x = '' 或 NULL;
  2. var y = 从服务器上的文件中获取文本;
  3. var x = y;

最佳答案

onreadystatechange是一个监听器,它不会立即执行,而是监听该事件的XHR请求。

当事件被触发时,例如当服务器返回响应时,代码将被执行。

关于javascript - AJAX:设置innerHTML后获取请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641691/

相关文章:

java - 仅使用一个循环将数组分为 2 个相等的部分,需要替代方法

javascript - Wordpress Cron Job 调用 javascript 函数提交 Web 表单

javascript - 我想在失去互联网连接时显示警报消息状态

javascript - 继承javascript Number 改为String

php - 使用JQuery和php从mysql数据库获取数据

javascript - Ajax注册失败不回显结果

XSLT按位逻辑

prolog - 在 Prolog 中解决逻辑难题(Kuromasu,黑细胞在哪里)

javascript - 以实际大小的 25% 呈现 div 的内容

java - 我怎么知道用户是否离开了 wicket 中的页面?