AJAX - 帮助我理解代码序列

时间:2016-08-29 15:44:00

标签: ajax get execution

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

有人可以帮我理解这里的执行顺序吗?

使用等待状态== 4的IF调用xhttp.onreadystatechange。但是在代码中进一步向下触发xhttp.send()之前,它不是4。所以一旦xhttp.send()触发State = 4,为什么再次调用onreadystatechange来执行IF?我想我将这看作是一个自上而下的执行。我只是不知道如何/为什么onreadystatechange"等待"国家改变?由于其代码已经执行。请尽可能简单地解释并感谢。

1 个答案:

答案 0 :(得分:1)

onreadystatechangeevent handler,这意味着它会在特定事件触发时触发。

  

XMLHttpRequest.onreadystatechange属性包含该事件   在触发readystatechange事件时要调用的处理程序 ,即   每次XMLHttpRequest的readyState属性改变

(强调我的)