日期:2014-05-16  浏览次数:20684 次

疯狂Ajax笔记
一.XMLHttpRequest的方法
   abort():停止发送当前请求
   getAllResponseHeaders():获取服务器返回的全部响应头,返回一个字符串。
   getResponseHeader("headerLabel"):根据响应头的名字,获取对应的响应头
   open("method","url",""):建立与服务器URL的连接,并设置请求的方法
   send(content):发送请求。其中content是请求参数。
   setRequestHeader("label","value"):在发送请求之前,先设置请求头。

二.XMLHttpRequest的属性
   onreadystatechange:该属性用于指定XMLHttpRequest对象状态改变时的事件处理函数
   readyState:XMLHttpRequest对象的处理状态
   responseText:该属性用于获取服务器的响应文本
   responseXML:该属性用于获取服务器响应的XML文档对象。
   status:该属性是服务器返回的状态码,只有当服务器的响应已经完成时,才会有该状态码。
   statusText:该属性是服务器返回的状态文本信息,只有当服务器的响应已经完成时,才会有该状态文本信息。

三.XMLHttpRequest对象有如下几种状态
   0:XMLHttpRequest对象还没有完成初始化
   1:XMLHttpRequest对象开始发送请求
   2:XMLHttpRequest对象的请求发送完成
   3:XMLHttpRequest对象开始读取服务器的响应
   4:XMLHttpRequest对象读取服务器响应结束。

通过readyState来获取。

四.status和statusText
   200:服务顺响应正常
   304:该资源在上次请求之后没有任何修改,这通常用于浏览器的缓存机制。使用get请求时尤其需要注意。
   400:无法找到请求的资源
   401:访问资源的权限不够
   403:没有权限访问资源
   404:需要访问的资源不存在
   405:需要访问 的资源被禁止
   407:访问的资源需要代理身份验证
   414:请求的URL太长
   500:服务器内部错误。

五.发送请求
   1.XMLHttpRequest都应该按如下步骤
   1.初始化XMLHttpRequest对象
   2.打开与服务器的连接。
   3.设置监听XMLHttpRequest状态改变的事件处理函数
   4.发送请求。


  2.发送get请求
   当使用Ajax发送异步请求时,建议使用POST请求,而不是GET请求。
  两个注意点:
   a.通过open方法打开与服务器的连接时,设置使用GET方法。
   b.如需要发送请求参数,应将请求参数转成查询字符串,并追加到请求URL之后。

  3.发送post请求
  
   a.通过open方法打开与服务器的连接时,设置使用post方式发送。
   b.设置正确的请求头,post请求通常应设置Content-Type请求头。
   c.发送请求,把请求参数转成查询字符串,将该字符串作为send()方法的参数即可。


六。处理服务器响应
    两个属性:responseText和responseXML

七.XMLHttpRequest对象的运行周期
   1.创建XMLHttpRequest对象,使用它来发送请求,可以是get,post
   2.XMLHttpRequest发送完之后,服务器的响应何时到达?应该何时处理服务器的响应?需要借助javascript的事件机制。
     XMLHttpRequest能触发的事件是onreadystatechange,当XMLHttpRequest对象的状态改变时,将触发onreadystatechange事件。
     为XMLHttpRequest对象的onreadystatechange事件指定事件处理函数,该事件处理函数将可以在XMLHttpRequest状态改变时被触发, 

  这个事件处理函数也称为回调函数。
   3.XMLHttpRequest状态改变,且readyState为4时,即表明服务器的响应已经完成,此时可以开始处理服务器响应。
   4.通过JavaScript的事件机制,使用事件处理函数监听XMLHttpRequest状态的改变,当XMLHttpRequest的readyState为4,且status为  

200时,事件处理函数处理服务器响应。
   5.进入事件处理函数后,事件处理函数必须借助于XMLHttpRequest来获取服务器响应,调用responseText方法或responseXML方法获取服

  务器的响应,至此,XMLHttpRequest对象的运行周期结束。
   6.javascript通过DOM操作将服务器响应动态地加载到XHTML页面中。



八。Ajax必须解决的问题
    一.跨浏览器的问题
     Ajax主要依赖5种技术:XMLHttpRequest,Javascript,DOM,XML和CSS。前三种是核心,后两种是可选。
   二.安全性问题。
      JavaScript本身的安全性
     数据在网络上传输的安全
    客户端调用远程服务的安全

  三。性能问题