ajax_XMLHttpRequest

     之前在项目中经常用jquery ajax进行局部刷新,最近想来仅仅是用而且,对于它是怎么个回事一窍不通哈。今天开始,学习下ajax。

ajax(Asynchronous JavaScript and XML)并不是一门新的技术而是html,javascrpit,dom,css等技术的结合。ajax的核心是javaScript的对象XMlHttpResquest对象。通过XMlHttpResquest对象的属性和方法来和服务器进行通信。几乎每个浏览器都有用javaScprit编写的ajax引擎。用户发送ajax请求,就跑到了ajax引擎,然后任ajax引擎去与服务器进行互动,用户自己再去干自己的事,从而也就实现了异步。

参考文档:ajax.chm

XMLHttpRequest对象的使用。
1.创建HttpRequestXml对象(ie 和非ie)可以从ajax.chm手册中查到
2.打开和服务器的链接 open(menthod,url+new Date().getTime(),asynch)其中url一般加上时间措,以避免多次点击同一个url事,从缓存中取数据
3.发送数据  send(data) 如果是get方式,则为send(null).
4.接受服务器端的响应(在ajax执行过程中服务器会通知客户端的通信状态。依靠XMLHttpRequest对象的readyState来实现。每次改变,会触发readyStateChange事件
 XMLHttpRequest的readyState属性表示ajax请求的当前状态.
 0代表未初始化。还没调用open方法。
 1代表正在加载。open调用,但send()方法没调用
 2代表加载完毕。send被调用。请求开始
 3代表交互中。服务器正字发送响应
 4代表完成。响应发送完毕)。
 客户端是怎么样接受到服务器发送的响应的呢???返回的数据放在 XMLHttpRequest.responseText 或者responseHTML中
 xmlHttpRequest.readystatechange(){//第四步应该放到第一步的下面
  if(xmlHttpRequest.readyState==4){
   //信息成功返回  200 没有被修改  304
   if(xmlHttpRequest.status==200|| xmlHttpRequest.status==304){
    alter(xmlHttpRequest.responseText);
   }
  }
 }

 

posted @ 2014-01-31 17:23  完结。  阅读(363)  评论(0编辑  收藏  举报