dos XHR的“readyState==3”是如何工作的

How dos XHR's "readyState==3" work?

本文关键字:何工作 工作 XHR readyState dos      更新时间:2023-09-26

这是代码片段

xhr.onreadystatechange = function(){   if(xhr.readyState == 3){      console.log("readyState Response length " + xhr.response.length);   }}

控制台是

readyState 响应长度:3854readyState 响应长度:33214ready状态响应长度:35296

我不知道onreadystatechange发射的时间是什么,它似乎与响应的大小有点关系,它是如何工作的?

什么是XHR readyState=3

readyState的值为 3 表示当前状态为 LOADING .

那么,该州的readyStateChange事件何时被触发?

每当异步请求切换到 LOAD 状态时。这尤其由以下因素触发:

一旦收到响应实体正文

的第一个字节(或更多)[...],或者如果没有响应实体正文[...] 然后切换到加载状态。

因此,浏览器在收到响应字节时可以自由地使用 readyState 3 触发此事件。有些更频繁地触发它(在每次缓冲区刷新时),有些则不会。该规范甚至为readystatechange事件说:

由于历史原因,readyState属性在某些看似任意的时间发生变化。