当前位置:  开发笔记 > 编程语言 > 正文

XMLHttpRequest中的不同readystates是什么意思,我该如何使用它们?

如何解决《XMLHttpRequest中的不同readystates是什么意思,我该如何使用它们?》经验,为你挑选了3个好方法。

XMLHttpRequest有5 readyState秒,我只使用其中的1个(最后一个4).

有什么其他用途,我可以使用哪些实际应用?



1> Kieron..:

完整的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,但这不是普遍支持的,不应该依赖它.


传输中的错误仍然将readyState更新为4.但是,完全中断的传输会将readyState重置为0.因此,传输中的重定向错误实际上不是"错误",您可以选择忽略日志记录/如果xhr的readyState为0,则报告错误.它有点脆弱,您的里程可能会有所不同,具体取决于是否记录每个事件/错误是"必须拥有"还是"很高兴".如果是后者,您可以承担丢失可能是错误的罕见事件以及readyState为0.
我不确定,@ vishalsharma - 我记得,只要请求未初始化,就绪状态为0.在那之后,任何其他"完成"(通过成功或错误)将把就绪状态更新为4.因此在转移开始后丢失互联网会将其翻转为4,而不是回到0.如果转移时从未有过互联网尝试,它应该仍然是0; 它只会在握手后移动到1.
+1给@MattBianco他的建议.我也想补充的是,Mozilla的开发者网络[MDN(https://developer.mozilla.org/)可以说是最流行的和值得信赖的参考网站之一在那里为你所有的JavaScript/HTML/CSS的需求.在进行谷歌搜索时,使用"mdn"添加您的查询,您将省去一些麻烦.

2> Vishal Sharm..:

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



3> bobince..:

原始权威文件

0,1并且2只跟踪到目前为止发出请求的必要方法的数量.

3告诉你服务器的响应已经开始进入.但是当你在XMLHttpRequest网页上使用对象时,几乎没有(*)你可以处理这些信息,因为你无法访问允许的扩展属性你要阅读部分数据.

readyState 4是唯一具有任何含义的.

(*:关于检查readyState的唯一可以想到的用途3是它在服务器端发出某种形式的生命信号,所以你可能会增加等待收到完整响应的时间.)

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有