bingoideas

轻叩枝头结,默数桃花开
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ajax浅析

Posted on 2009-06-11 14:21  bingoideas  阅读(204)  评论(0编辑  收藏  举报

Ajax是开发富因特网应用的必备工具,它可以完成异步的数据请求,并返回用户的请求数据以供调用。通过 AJAX,您的 JavaScript 可使用 JavaScript XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。所以Ajax使基于web应用的工程项目更富于人性化。

下面分析一个典型的Ajax程序。

示例代码如下

<script language="javascript">

      var xmlHttp ;

         //首先创建一个XHR对象,这一步是根据浏览器的不同,创建方式也不同

      function createXMLHttpRequest(){

                if(window.XMLHttpRequest){//这是除IE外的创建方式

                         xmlHttp = new XMLHttpRequest();

                }else if(window.ActiveXObject){//这里是IE5+XHR创建方式

                         try{

                                  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

                         }catch(e){//这里是IE5-的创建方式

                                  try{

                                            xmlHttp = new ActiveObject("Microsoft.XMLHTTP");

                                  }catch(e){}

                         }

                }

      }

         //自定义Ajax请求函数

      function startRequest(){

                var url="";

                createXMLHttpRequest();//此处创建XHR对象

                xmlHttp.onreadystatechange = handleStateChange;//调用Ajax处理函数

                xmlHttp.open("post",url,true);//指定请求路径和方式,true表示异步方式发送请求,false相反

                xmlHttp.send(null);//发送请求

      }

      function handleStateChange(){

                if(xmlHttp.readyState==4){//处理请求状态,4表示请求完成

                         if(xmlHttp.status>=200&&xmlHttp.status<300){//处理请求状态,200-299表示成功,300+表示各种失败

                                  slt.innerHTML=xmlHttp.responseText;//页面元素接收请求返回的信息

                                  //document.form.city.options.value=xmlHttp.responseText;

                                  //document.getElementById("city").value=xmlHttp.responseText;

                         }

                }

      }

 </script>

注意这里的返回信息是文本格式,另外一种返回是以xml形式返回,需要解析。