(收藏)XMLHttpRequest Ajax 实例简介
2009-12-13 19:46 jelyly 阅读(210) 评论(0) 收藏 举报一、XMLHttpRequest 对象的方法与属性
| 方 法 | 描 述 | 
| abort() | 停止当前请求 | 
| getAllResponseHeaders() | 把HTTP请求的所有响应首部作为键/值对返回 | 
| getResponseHeader("header") | 返回指定首部的串值 | 
| open("method", "url") | 建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数 | 
| send(content) | 向服务器发送请求 | 
| setRequestHeader("header", "value") | 把指定首部设置为所提供的值。在设置任何首部之前必须先调用open() | 
| 属 性 | 描 述 | 
| onreadystatechange | 每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数 | 
| readyState | 请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成 | 
| responseText | 服务器的响应,表示为一个串 | 
| responseXML | 服务器的响应,表示为XML。这个对象可以解析为一个DOM对象 | 
| status | 服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等) | 
| statusText | HTTP状态码的相应文本(OK或Not Found(未找到)等等) | 
二、使用XMLHttpRequest 实现ajax效果
这里我们用客户端通过XMLHttpRequest 请求服务端获取当前系统时间,实现异步交互!
客户端myAjax.html代码
 <html xmlns="http://www.w3.org/1999/xhtml" >
<html xmlns="http://www.w3.org/1999/xhtml" > <head>
<head> <title>xmlhttprequest ajax demo</title>
    <title>xmlhttprequest ajax demo</title> <script type ="text/javascript" language ="javascript" >
    <script type ="text/javascript" language ="javascript" > var req; //定义变量,用来创建xmlhttprequest对象
        var req; //定义变量,用来创建xmlhttprequest对象 function creatReq() // 创建xmlhttprequest,ajax开始
        function creatReq() // 创建xmlhttprequest,ajax开始 {
        { var url="ajaxServer.aspx"; //要请求的服务端地址
            var url="ajaxServer.aspx"; //要请求的服务端地址 if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
            if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建 {
            { req=new XMLHttpRequest();
                req=new XMLHttpRequest(); }
            } else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
            else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败. {
            { req=new ActiveXObject("Microsoft.XMLHttp");
                req=new ActiveXObject("Microsoft.XMLHttp"); }
            } 
             if(req) //成功创建xmlhttprequest
            if(req) //成功创建xmlhttprequest {
            { req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
                req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步) req.onreadystatechange = callback; //指定回调函数
                req.onreadystatechange = callback; //指定回调函数 req.send(null); //发送请求
                req.send(null); //发送请求 }
            } }
        } 
         function callback() //回调函数,对服务端的响应处理,监视response状态
        function callback() //回调函数,对服务端的响应处理,监视response状态 {
        { if(req.readystate==4) //请求状态为4表示成功
            if(req.readystate==4) //请求状态为4表示成功 {
            { if(req.status==200) //http状态200表示OK
                if(req.status==200) //http状态200表示OK {
                { Dispaly(); //所有状态成功,执行此函数,显示数据
                    Dispaly(); //所有状态成功,执行此函数,显示数据 }
                } else //http返回状态失败
                else //http返回状态失败 {
                { alert("服务端返回状态" + req.statusText);
                    alert("服务端返回状态" + req.statusText); }
                } }
            } else //请求状态还没有成功,页面等待
            else //请求状态还没有成功,页面等待
 {
            { document .getElementById ("myTime").innerHTML ="数据加载中
                document .getElementById ("myTime").innerHTML ="数据加载中 ";
"; }
            } }
        } 
         function Dispaly() //接受服务端返回的数据,对其进行显示
        function Dispaly() //接受服务端返回的数据,对其进行显示 {
        { document .getElementById ("myTime").innerHTML =req.responseText;
            document .getElementById ("myTime").innerHTML =req.responseText; }
        } 
         </script>
    </script> </head>
</head> <body>
<body> <div id="myTime"></div>
    <div id="myTime"></div> 
         <input id="Button1" type="button" value="Get Time"  onclick ="creatReq();"/>
    <input id="Button1" type="button" value="Get Time"  onclick ="creatReq();"/> </body>
</body> </html>
</html>服务端ajaxServer.aspx代码 (不需要HTML代码,只需服务端处理返回数据,也可用ashx文件来处理)
 public partial class ajaxServer : System.Web.UI.Page
public partial class ajaxServer : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { System.Threading.Thread.Sleep(1000); //为了看到ajax效果,将当前线程延时1000毫秒
        System.Threading.Thread.Sleep(1000); //为了看到ajax效果,将当前线程延时1000毫秒 Response.Write(DateTime .Now .ToString ()); //输出当前时间
        Response.Write(DateTime .Now .ToString ()); //输出当前时间 }
    } }
}
from : http://www.cnblogs.com/chy710/archive/2007/04/15/713868.html
 
                     
                    
                 
                    
                 
    
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号