Ajax实现原理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ajax实现原理Ajax 的工作Ajax直觉认识:我们发送一个请求,但是这个请求比较特殊它是异步的,也就是说客户端是不会感觉到的。在发送这个请求的时候我们绑定了一个事件,这个事件会监控我们发送请求的状态,并且每次状态改变都会触发,所以我们就可以根据不同的状态让他执行不同的操作。请求到达服务器端的后服务器端根据相应的请求返回对应的信息,这个返回信息我们可以取得并且是异步得到,不会引起客户端刷新。既然在上面已经绑定了监控状态变化的事件,我们就可以在那里首先做好在得到返回信息要做的处理(当然如果失败也会有相应的状态我们也会做出相应的处理),我们在处理中得到返回信息通过javascript在客户端做相应操作即可。 Ajax 核心—XMLHttpRequest 上面我们大概感受了一下Ajax的过程,我们发现发送异步请求才是核心,事实上它就是XMLHttpRequest,整个Ajax之所以能完成异步请求完全是因为这个对应可以发送异步请求的缘故。而且我们又发现上面那个事件就是整个处理过程的核心,可以根据不同状态执行不同操作,其实它就是XMLHttpRequest的方法onreadystatechange,它在每次状态发生改变时都会触发。那么是谁取得的返回信息呢?它就是XMLHttpRequest的另一个方法responseText(当然还有responseXML)。(⊙o⊙)哦,我们还没有说发送给谁以及执行发送操作,这两个就是XMLHttpRequest的open和send方法。Y(^o^)Y,其他的当然还有了,我们直接列出来吧: XMLHttpRequest 对象 属性?readyState 请求状态,开始请求时值为0直到请求完成这个值增长到4responseText 目前为止接收到的响应体,readyState3此属性为空字符串,=3为当前响应体,=4则为完整响应体responseXML 服务器端相应,解析为xml并作为Document对象返回status 服务器端返回的状态码,=200成功,=404表示“Not Found”statusText 用名称表示的服务器端返回状态,对于“OK”为200,“Not Found”为400方法?setRequestHeader() 向一个打开但是未发生的请求设置头信息open() 初始化请求参数但是不发送send() 发送Http请求abort() 取消当前相应getAllResponseHeaders() 把http相应头作为未解析的字符串返回getResponseHeader() 返回http相应头的值事件句柄?onreadystatechange 每次readyState改变时调用该事件句柄,但是当readyState=3有可能调用多次 代码实现 ajax.js文件代码,也是我们说的主要内容,是一个javascript文件,所有的Ajax操作都在这里:/jianxin160/article/details/5544551view plain/jianxin160/article/details/5544551copy to clipboard/jianxin160/article/details/5544551print/jianxin160/article/details/5544551?//与服务器通信 ?function?talktoServer(url)?{???var?req?=?newXMLHTTPRequst();???var?callbackHandler?=?getReadyStateHandler(req);???req.onreadystatechange?=?callbackHandler;???req.open(POST,?url,?true);???req.setRequestHeader(Content-Type,?application/x-www-form-urlencoded);???var?testmsg?=?document.getElementById(testmsg);???var?msg_value?=?testmsg.value;???req.send(msg=+msg_value);??}??//创建XMLHTTP对象 ?function?newXMLHTTPRequst()?{???var?xmlreq?=?false;???if?(window.XMLHttpRequest)?{???xmlreq?=?new?XMLHttpRequest();???}?else?if?(window.ActiveXobject)?{???try{???xmlreq=new?ActiveXObject(Msxm12.XMLHTTP);???}?catc

文档评论(0)

yuguanyin2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档