XMLHTTP.readyState的五种状态
2016-04-01 09:37
295 查看
[b]深入了解 HTTP 就绪状态[/b]
0:请求未初始化(还没有调用
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
隐秘就绪状态
第一种就绪状态的特点是
不过为了满足我们的兴趣,请参见 清单 2 的内容,其中显示了如何在 readyState 被设置为 0 时来获取这种就绪状态。
获取安全数据
所有的文档和规范都强调,只有在就绪状态为 4 时数据才可以安全使用。相信我,当就绪状态为 3 时,您很少能找到无法从
比较好的做法是向用户提供一些反馈,说明在处于就绪状态 3 时,很快就会有响应了。尽管使用
当然,正如您已经看到的一样,这种方法非常聪明,但它是依赖于浏览器的。在 Opera 上,您永远都不会看到前两个就绪状态,而在 Safari 上则没有第一个(1)。由于这个原因,我将这段代码留作练习,而没有在本文中包括进来。
现在应该来看一下状态代码了。
进行JSP请求发送:
0:请求未初始化(还没有调用
open())
1:请求已经建立,但是还没有发送(还没有调用
send())
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
隐秘就绪状态
第一种就绪状态的特点是
readyState属性为 0(
readyState == 0),表示未初始化状态。一旦对请求对象调用
open()之后,这个属性就被设置为 1。由于您通常都是在一对请求进行初始化之后就立即调用
open(),因此很少会看到
readyState == 0的状态。另外,未初始化的就绪状态在实际的应用程序中是没有真正的用处的。
不过为了满足我们的兴趣,请参见 清单 2 的内容,其中显示了如何在 readyState 被设置为 0 时来获取这种就绪状态。
获取安全数据
所有的文档和规范都强调,只有在就绪状态为 4 时数据才可以安全使用。相信我,当就绪状态为 3 时,您很少能找到无法从
responseText属性获取数据的情况。然而,在应用程序中将自己的逻辑依赖于就绪状态 3 可不是什么好主意 —— 一旦您编写了依赖于就绪状态 3 的完整数据的的代码,几乎就要自己来负责当时的数据不完整问题了。
比较好的做法是向用户提供一些反馈,说明在处于就绪状态 3 时,很快就会有响应了。尽管使用
alert()之类的函数显然不是什么好主意 —— 使用 Ajax 然后使用一个警告对话框来阻塞用户显然是错误的 —— 不过您可以在就绪状态发生变化时更新表单或页面中的域。例如,对于就绪状态 1 来说要将进度指示器的宽度设置为 25%,对于就绪状态 2 来说要将进度指示器的宽度设置为 50%,对于就绪状态 3 来说要将进度指示器的宽度设置为 75%,当就绪状态为 4 时将进度指示器的宽度设置为 100%(完成)。
当然,正如您已经看到的一样,这种方法非常聪明,但它是依赖于浏览器的。在 Opera 上,您永远都不会看到前两个就绪状态,而在 Safari 上则没有第一个(1)。由于这个原因,我将这段代码留作练习,而没有在本文中包括进来。
现在应该来看一下状态代码了。
进行JSP请求发送:
request.open("GET", url, true);
相关文章推荐
- CodeForces 653D Delivery Bears(网络流)
- iOS开发:网络参考模型
- SSL常用专业缩略语汇总
- 网络常用9命令备忘录
- java网络编程客户端输入字符串,服务器端将其反转后输出给客户端,客户端显示出来
- java网络编程客户端,服务器端
- 20150117未来网络高层论坛——北京交通大学主办
- (OK) port_php-5.6.14_to_Android—(和lighttpd集成成功)—没有基于android 4.4源码
- (转)http接口测试——Jmeter接口测试实例讲解
- (OK) port_lighttpd_to_Android——没有基于android 4.4源码
- 命令行配置Linux网络和安装图形界面记录
- ASP.NET global.asax、httpHandlers、httpModules 后门-园长
- note-网络-UDP
- 《HTTP权威指南》读书笔记(第一章~第三章)
- 从C10K到C10M高性能网络的探索与实践
- H3C S3100V2 进web界面只显示不显示配置菜单,只有网络诊断
- iOS9 HTTP不能正常使用的解决方法
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包
- linux网络发包性能优化
- VIEWGOOD(远古)外语院系流媒体网络电视平台应用方案