【发布时间】:2013-01-05 05:28:12
【问题描述】:
<div id="myDiv"></div>
<script>
var xmlhttp = new XMLHttpRequest();
document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
xmlhttp.onreadystatechange = function() {
document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
}
xmlhttp.open("GET", "example.com", true);
xmlhttp.send();
</script>
我得到这个显示:
0
1
1
2
3
4
为什么有两个 1?
我的浏览器是 Firefox 17.0。
【问题讨论】:
-
here解释了状态,似乎firefox在
send()上设置状态1通知js引擎请求开始传输,尝试删除send()看看你会收到多少状态跨度> -
有趣的是,当您将 false 传递给
open()时,它只会产生一个 1,而不是 2 和 3。您可以将此链接添加到您的问题中:jsfiddle.net/S55vq/1 为方便起见 -
还考虑到 Chrome 只产生单 1,这只是浏览器特定的行为,FF 的下一个版本也可能产生单 1
标签: javascript ajax xmlhttprequest