这是代码片段
xhr.onreadystatechange = 函数(){ 如果(xhr.readyState == 3){ console.log("readyState 响应长度" + xhr.response.length); } }
控制台是
readyState 响应长度:3854 readyState 响应长度:33214 readyState 响应长度:35296
我不知道onreadystatechange
触发的时间是什么,这似乎与响应的大小有关,它是如何工作的?
这是代码片段
xhr.onreadystatechange = 函数(){ 如果(xhr.readyState == 3){ console.log("readyState 响应长度" + xhr.response.length); } }
控制台是
readyState 响应长度:3854 readyState 响应长度:33214 readyState 响应长度:35296
我不知道onreadystatechange
触发的时间是什么,这似乎与响应的大小有关,它是如何工作的?
什么是 XHR
readyState=3
?
具有它readyState
的值3
意味着当前状态是LOADING
。
那么什么时候
readyStateChange
触发该状态的事件?
每当异步请求确实切换到 LOADING 状态时。这尤其是由以下触发的:
一旦收到响应实体主体的第一个字节(或更多)[...] 或如果没有响应实体主体 [...] 则切换到 LOADING 状态。
因此,浏览器在收到响应字节时可以使用 readyState 3 自由触发此事件。有些更频繁地触发它(在每次缓冲区刷新时),其他的则不会。规范甚至对readystatechange
事件说:
readyState
由于历史原因,该属性在某些看似任意的时间发生变化。