不用AJAX架構實現AJAX效果

來源:互聯網
上載者:User

AJAX( Asynchronous JavaScript and XML),即:javascript和XML;

  是一種進行頁面局部非同步處理資料的技術,用AJAX向伺服器發送請求和擷取伺服器返回的資料並且更新到介面中,不是整個頁面的重新整理,而是HTML頁面中使用JAVASCRIPT建立XMLHTTPRequest對象來向伺服器發出請求以及獲得返回的資料,就像WebClient一樣(向伺服器發出請求,WebClient wc=new Webclient();    string str=wc.DownLoadString("GetServerTime.ashx");      $("#textbox1").val(s);   ),在頁面中由XMLHTTPRequest來發布Http請求和獲得伺服器的返回資料;XMLHTTPRequest是AJAX的核心

Example 1:

 

  1、首先建立一個ashx頁面(一般處理常式),在該頁面中把當前最新的時間用字串的形式直接列印到頁面上;

     

        

View Code

 1     public void ProcessRequest(HttpContext context)
2      {
3      context.Response.ContentType = "text/plain";
4      //context.Response.Write("Hello World");
5      context.Response.Write(DateTime.Now);
6      }
7
8    public bool IsReusable
9    {
10    get
11    {
12    return false;
13     }
14
15      }

 

    2、在建立一個html頁面進行測試

       a、添加一個文字框

        

 <input id="txtId" type="text" />

 

       b、添加一個按鈕,當按鈕按下的時候向伺服器發出請求,將伺服器返回的資料添加到上面的文字框中;

        

   <input id="btnId" type="button" value="確定" onclick="btnclick();" />

 

       c、不用任何的AJAX的架構完成ajax的請求;添加如下代碼:

            

View Code

 1 <script type="text/javascript">
2
3          function btnclick() {
4
5            //建立一個xmlhttp對象,相當於WebClient
6            var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
7
8            if (!xmlHttp) {
9              alert("初始化XMLHTTP時異常!");
10              return false;
11             }
12
13            //準備向伺服器頁面 Handler1.ashx 發出 post 請求
14            xmlHttp.open("post", "Handler1.ashx?f=" + new Date, false); //為了避免緩衝後面以目前時間做變化實現資料的緩衝現象
15             //註冊事件,用一個匿名的函數來響應
16            xmlHttp.onreadystatechange = function() {
17
18            //readyState表示XMLHttpRequest對象的處理狀態:
19               //0:XMLHttpRequest對象還沒有完成初始化。
20               //1:XMLHttpRequest對象開始發送請求。
21               //2:XMLHttpRequest對象的請求發送完成。
22               //3:XMLHttpRequest對象開始讀取伺服器的響應。
23               //4:XMLHttpRequest對象讀取伺服器響應結束
24            if (xmlHttp.readyState == 4) {
25           //如果狀態代碼為200,表示成功;300表示重新導向,400表示許可權問題, 500表示錯誤;
26              if (xmlHttp.status == 200) {
27          //responseText屬性為伺服器返回的文本
28              document.getElementById("txtId").value = xmlHttp.responseText;
29             }
30            else {
31              alert("AJAX伺服器返回錯誤");
32              }
33            }
34            }
35            //向伺服器發送請求
36             xmlHttp.send();
37            }
38          </script>

 

 

      

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.