这是代码片段
xhr.onreadystatechange = function(){
if(xhr.readyState == 3){
console.log("readyState response length " + xhr.response.length);
}
}
控制台是
readyState response length: 3854
readyState response length: 33214
readyState response length: 35296
我不知道什么时间onreadystatechange
射击,它似乎确实与响应的大小有点相关,它是如何工作的?
什么是XHRreadyState=3
?
拥有readyState http://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-readystate值为3
这意味着当前状态是LOADING
.
那么什么时候是readyStateChange
该州的事件被解雇了吗?
每当异步请求确实切换到 LOADING 状态时。那就是特别触发于 http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send%28%29-method:
一旦收到响应实体主体的第一个字节(或更多)[...]或如果没有响应实体主体[...]
然后切换到LOADING状态。
因此,当浏览器收到响应字节时,可以自由地使用 ReadyState 3 触发此事件。有些会更频繁地触发它(在每次缓冲区刷新时),而另一些则不会。规范甚至说 http://www.w3.org/TR/XMLHttpRequest/#event-xhr-readystatechange为了readystatechange
Event:
The readyState
由于历史原因,属性在某些看似任意的时间发生变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)