XMLHttpRequest
有5 readyState
秒,我只使用其中的1个(最后一个4
).
有什么其他用途,我可以使用哪些实际应用?
完整的readyState
值列表是:
State Description 0 The request is not initialized 1 The request has been set up 2 The request has been sent 3 The request is in process 4 The request is complete
(来自https://www.w3schools.com/js/js_ajax_http_response.asp)
在实践中,你几乎从不使用它们中的任何一个,除了4.
某些 XMLHttpRequest实现可能会让您在responseText
何时看到部分收到的响应readyState==3
,但这不是普遍支持的,不应该依赖它.
kieron的回答包含了w3schools ref.没有人依赖, bobince的回答给出了链接,实际上讲的是IE的原生实现,
所以这里引用的原始文档正确地理解了readystate代表什么:
XMLHttpRequest对象可以处于多种状态.readyState属性必须返回当前状态,该状态必须是以下值之一:
UNSENT(数值0)
已构造对象.OPENED(数值1)
已成功调用open()方法.在此状态期间,可以使用setRequestHeader()设置请求标头,并且可以使用send()方法进行请求.HEADERS_RECEIVED(数值2)
已遵循所有重定向(如果有)并且已收到最终响应的所有HTTP标头.现在可以使用该对象的几个响应成员.LOADING(数值3)
正在接收响应实体主体.DONE(数值4)
数据传输已完成或传输过程中出现错误(例如无限重定向).
请阅读:W3C解释ReadyState
原始权威文件
0
,1
并且2
只跟踪到目前为止发出请求的必要方法的数量.
3
告诉你服务器的响应已经开始进入.但是当你在XMLHttpRequest
网页上使用对象时,几乎没有(*)你可以处理这些信息,因为你无法访问允许的扩展属性你要阅读部分数据.
readyState 4
是唯一具有任何含义的.
(*:关于检查readyState的唯一可以想到的用途3
是它在服务器端发出某种形式的生命信号,所以你可能会增加等待收到完整响应的时间.)