解释Ajax代码顺序

时间:2016-04-28 01:36:46

标签: ajax

我为我的网络项目使用了很多Ajax但是现在我想完全理解它。我遇到了这个问题。

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
     document.getElementById("demo").innerHTML = xhttp.responseText;//get response
    }
  };
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();//send request
}

查看代码。在我的逻辑中,我认为我们必须首先发送请求然后稍后得到响应。 那么为什么在ajax代码中我们在发送请求之前得到响应。 我在这里错过了什么吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

这部分:

  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
     document.getElementById("demo").innerHTML = xhttp.responseText;//get response
    }
  };

定义了一个回调函数(异步)。仅当xmlhttprequest对象更改状态(您将其附加到onreadystatechange事件)时才会调用此函数。您需要在进行调用之前定义回调函数(xhttp.open),否则它将不知道该怎么做,但代码本身在xmlrequestobject的状态发生变化之前不会运行。