Javascript AJAX:设置innerHTML后获取请求?
使用W3School示例(): 使用变量的伪代码示例:Javascript AJAX:设置innerHTML后获取请求?,javascript,ajax,logic,innerhtml,Javascript,Ajax,Logic,Innerhtml,使用W3School示例(): 使用变量的伪代码示例: var x=''或NULL var y=从服务器上的文件获取文本 var x=y onreadystatechange是一个侦听器,它不会立即执行,而是侦听该事件的XHR请求 当事件被触发时,例如当响应从服务器返回时,代码将被执行。在javascript中,不能保证每个代码都会一个接一个地执行。如果某行需要时间,则第二行开始执行。因此,如果需要某些执行优先级,则需要应用回调。对于Ajax,请遵循同步或异步方式。您还可以交换xhttp.onr
onreadystatechange
是一个侦听器,它不会立即执行,而是侦听该事件的XHR请求
当事件被触发时,例如当响应从服务器返回时,代码将被执行。在javascript中,不能保证每个代码都会一个接一个地执行。如果某行需要时间,则第二行开始执行。因此,如果需要某些执行优先级,则需要应用回调。对于Ajax,请遵循同步或异步方式。您还可以交换
xhttp.onreadystatechange
和xhttp.open()
的顺序
只有在执行xhttp.send()
之后,才会将请求发送到服务器
在xhttp.onreadystatechange=function(){}
中可以找到
if(this.readyState==4&&this.status==200){
//dom执行
}
这意味着在
xhttp.send()
将请求发送到服务器和readyState==4&&status==200
之后执行dom,这是因为您正在为onreadystatechange
分配一个函数,该函数将在以后响应到达时执行,然而,解释器继续执行剩余的代码。阅读异步JSPerfect。我来看看。谢谢你的帮助@Maximus解释器按原样“执行”代码,碰巧代码是一个函数声明。@pvg,是的,我知道:)。它实际上是函数expression@Maximus我们无法摆脱js人和他们疯狂的月亮术语!无论如何,(毫无保留地)一点是,即使对于他们可能已经知道的简单情况,posters的前提也是错误的:编写函数实际上不会调用它,因此即使没有异步,事情也不会按词汇顺序运行。
<!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>
document.getElementById("demo").innerHTML =
this.responseText;