位置: 编程技术 - 正文

javascript ajax的5种状态介绍

编辑:rootadmin

推荐整理分享javascript ajax的5种状态介绍,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在《Pragmatic ajax(动态网站静态化) A Web 2.0 Primer 》中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下:

0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) method has been invoked, request in progress. 2: (Loaded) the send( ) method has completed, entire response received.3: (Interactive) the response is being parsed. 4: (Completed) the response has been parsed, is ready for harvesting.

0 - (未初始化)还没有调用send()方法1 - (载入)已调用send()方法,正在发送请求2 - (载入完成)send()方法执行完成,已经接收到全部响应内容3 - (交互)正在解析响应内容4 - (完成)响应内容解析完成,可以在客户端调用了

对于readyState的这五种状态,其他书中大都语焉不详。像《Foundations of ajax(动态网站静态化)》中,只在书中的表2-2简单地列举了状态的“名称”--The state of the request. The five possible values are 0 = uninitialized, 1 = loading, 2 = loaded, 3 = interactive, and 4 = complete。而《ajax(动态网站静态化) in Action》中好像根本就没有提到这5种状态的细节。《Professional ajax(动态网站静态化)》中虽不尽人意,但还是有可取之处:

There are five possible values for readyState: 0 (Uninitialized): The object has been created but the open() method hasn't been called. 1 (Loading): The open() method has been called but the request hasn't been sent. 2 (Loaded): The request has been sent. 3 (Interactive). A partial response has been received. 4 (Complete): All data has been received and the connection has been closed.

readyState有五种可能的值:0 (未初始化): (xml(标准化越来越近了)HttpRequest)对象已经创建,但还没有调用open()方法。1 (载入):已经调用open() 方法,但尚未发送请求。2 (载入完成): 请求已经发送完成。3 (交互):可以接收到部分响应数据。4 (完成):已经接收到了全部数据,并且连接已经关闭。

在《Understanding ajax(动态网站静态化): Using JavaScript to Create Rich Internet Applications》中,则用下表进行了说明:

readyState Status CodeStatus of the xml(标准化越来越近了)HttpRequest Object (0) UNINITIALIZED未初始化 The object has been created but not initialized. (The open method has not been called.)(xml(标准化越来越近了)HttpRequest)对象已经创建,但尚未初始化(还没有调用open方法)。 (1) LOADING载入 The object has been created, but the send method has not been called.(xml(标准化越来越近了)HttpRequest)对象已经创建,但尚未调用send方法。 (2) LOADED载入完成 The send method has been called, but the status and headers are not yet available.已经调用send方法,(HTTP响应)状态及头部还不可用。 (3) INTERACTIVE交互 Some data has been received. Calling the responseBody and responseText properties at this state to obtain partial results will return an error, because status and response headers are not fully available.已经接收部分数据。但若在此时调用responseBody和responseText属性获取部分结果将会产生错误,因为状态和响应头部还不完全可用。 (4) COMPLETED完成 All the data has been received, and the complete data is available in the responseBody and responseText properties.已经接收到了全部数据,并且在responseBody和responseText属性中可以提取到完整的数据。

根据以上几本书中的关于readyState五种状态的介绍,我认为还是《Pragmatic ajax(动态网站静态化) A Web 2.0 Primer 》比较到位,因为它提到了对接收到的数据的解析问题,其他书中都没有提到这一点,而这一点正是“(3)交互”阶段作为一个必要的转换过程存在于“(2)载入完成”到“(4)完成”之间的理由,也就是其任务是什么。归结起来,我觉得比较理想的解释方法应该以“状态:任务(目标)+过程+表现(或特征)”表达模式来对这几个状态进行定义比较准确,而且让人容易理解。现试总结如下:

javascript ajax的5种状态介绍

readyState 状态说明

(0)未初始化此阶段确认xml(标准化越来越近了)HttpRequest对象是否创建,并为调用open()方法进行未初始化作好准备。值为0表示对象已经存在,否则浏览器会报错--对象不存在。

(1)载入此阶段对xml(标准化越来越近了)HttpRequest对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置。并调用send()方法开始向服务端发送请求。值为1表示正在向服务端发送请求。

(2)载入完成此阶段接收服务器端的响应数据。但获得的还只是服务端响应的原始数据,并不能直接在客户端使用。值为2表示已经接收完全部响应数据。并为下一阶段对数据解析作好准备。

(3)交互此阶段解析接收到的服务器端响应数据。即根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responsexml(标准化越来越近了)属性存取的格式,为在客户端调用作好准备。状态3表示正在解析数据。

(4)完成此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过xml(标准化越来越近了)HttpRequest对象的相应属性取得数据。

概而括之,整个xml(标准化越来越近了)HttpRequest对象的生命周期应该包含如下阶段:创建-初始化请求-发送请求-接收数据-解析数据-完成

在具体应用中,明确了readyState的五个状态(xml(标准化越来越近了)HttpRequest对象的生命周期各个阶段)的含义,就可以消除对ajax(动态网站静态化)核心的神秘感(语焉不详的背后要么是故弄玄虚,制造神秘感;要么就是“以其昏昏,使人昭昭”),迅速把握其实质,对减少学习中的挫折感和增强自信心都极其有益。

比如,通过如下示例:

我们很容易明白xml(标准化越来越近了)HttpRequest对象在各个阶段都在做什么。因此,也就很容易对ajax(动态网站静态化)的核心部分有一个真正简单明了的理解。

js中运算符&& 和 || 的使用记录 这2个运算符经常用到,总是弄混,记录下。。。a()&&b():如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的

控制台报错object is not a function的解决方法 今天反馈过来一个BUG,说一个页面的功能用不了。打开控制台发现报错:objectisnotafunction。感觉很奇怪,这块的功能最新没动过怎么会突然出问题了呢

javascript实现的一个随机点名功能 这个其实是对JS随机数的一个练习方式,先把所有人得名字预先写好在一个数组里,然后让数组里的值快速的显示在区域内,当你按停的时候滚动就会停

标签: javascript ajax的5种状态介绍

本文链接地址:https://www.jiuchutong.com/biancheng/370190.html 转载请保留说明!

上一篇:javascript中实现兼容JAVA的hashCode算法代码分享(javascript怎么用)

下一篇:js中运算符&& 和 || 的使用记录(js运算符种类)

  • 收据收到写什么
  • 甲供材能否开具增值税专用发票
  • 个人投资者取得现金红利的过程不用支付利息税
  • 长期股权投资超过50%
  • 被收购的收入计什么科目
  • 外经证缴纳个税流程
  • 在建工程 费用
  • 交通运输业安全员证
  • 社团会费收取标准和管理办法
  • 注册资金没有到账用不用交印花税
  • 建筑业红字发票备注
  • 行政相对人和行政管理相对人的区别
  • 企业法人股东向个人借款能起诉查封公司财产吗
  • 公司一般户走账要交税吗
  • 发票作废税金怎么算
  • 营改增后建筑业开票规定
  • 职工福利费扣除标准2022
  • 7月1日所有公司发票系统需要升级,办公用品发票买什么开什么
  • 环保设备的折旧计入
  • 银行承兑贴息率是年利率吗
  • 个人独资企业股权转让要交什么税
  • 工会经费的开支必须取得发票么
  • 雇主责任险发票可以用复印件吗
  • sccenter.exe - sccenter是什么进程 有什么用
  • win11预览版dev改beta
  • php验证码扭曲效果怎么做
  • 原材料按实际成本核算需设置的科目包括
  • 增值税报了所得税未报可以买发票吗
  • 劳务报酬已扣税是否需报个税
  • php加密zend
  • trainer 平替
  • 结构重参数化2d pose
  • php调用微信扫描二维码
  • 入库税款异常怎么处理好
  • 对公帐户进出帐要交税吗
  • 织梦文章标题显示不全
  • 小规模纳税人的个人所得税怎么算
  • 机器维修费属于什么会计科目
  • 公司性质不一样的重名可以吗
  • 外商投资企业 外资企业
  • sql server干嘛的
  • 机器设备可以作为出资方式吗
  • 预收账款是负债还是资产
  • 手机开个人劳务票怎么开
  • 固定资产出售通过什么科目
  • 商业承兑汇票怎么贴现
  • 应付账款从质保金扣除
  • 补发工资怎么补发
  • 2020发票丢失新规
  • 外包加工如何做账
  • 车辆保险费算什么费用
  • 建筑劳务公司的账务处理流程
  • 不开票收入怎么做账
  • 企业装卸费抵扣怎么做账
  • 生物性资产折旧处理
  • 收到红字增值税发票哪里查
  • 企业会计账簿设计的原则
  • 在sql server中触发器不具有什么类型
  • win8系统怎么清理缓存
  • vmware虚拟机不能识别iso
  • Ubuntu软件源更新
  • Mac上Parallels Desktop共享虚拟机怎么设置 Mac上Parallels Desktop共享虚拟机设置步
  • xp系统无法预览图片
  • 删掉sam文件后无法开机
  • win8怎么查看系统信息
  • win8如何隐藏任务栏
  • nodejs怎么开发后端
  • win sc
  • html焦点图
  • 归档 oracle
  • 批处理结束后不关闭窗口
  • python脚本怎么编写
  • document对象的常用方法
  • android.net.wifi
  • unitytest
  • 2024新车购置税政策
  • 网上交了购置税你要打印出来吗
  • 丹阳税务局一分局领导
  • 广东省国家税务总局电子税务局
  • 珠海选调生2021公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设