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"等待"国家改变?由于其代码已经执行。请尽可能简单地解释并感谢。答案 0 :(得分:1)
onreadystatechange是event handler,这意味着它会在特定事件触发时触发。
XMLHttpRequest.onreadystatechange属性包含该事件 在触发readystatechange事件时要调用的处理程序 ,即 每次XMLHttpRequest的readyState属性改变
(强调我的)