DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 漫談Ajax在.Net中的使用
漫談Ajax在.Net中的使用
編輯:AJAX詳解     

AJax出來的時間也不短了。雖然它在某些方面很受爭議,但是瑕不掩瑜。AJax不能說它屬於哪門語言,而是任何一門語言與Javascript,XML的交叉。我覺得,說AJax是任何一門WEB語言與DHtml、XML的交叉這樣更加合適。

以下只討論IE部分。

AJax在應用中使用有3個部分(個人觀點):
1、數據(一般通過IE內置組件Microsoft.XMLHTTP來取得或者發送數據);
2、事件(事件指的是客戶端事件,如果是服務端事件,那麼AJax也就沒什麼意義了);
3、綁定(暫且就叫綁定吧,也可以說是顯示,一般通過DHtml來完成)。

從上面看,AJax就使用了Microsoft.XMLHTTP組件和DHTL。其實還有另外一部分,就是服務器端的處理。

一、簡單示例
就最簡單的原型來說,就是取得數據:
a.ASPx的內容如下:
aaaaab.ASPx取得
<div id="MyShow"/>

<script language="JavaScript">
    var xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
    //數據傳輸,flase為非異步方式
    XMLhttp.open("GET","a.ASPx",true);
    XMLhttp.onreadystatechange=function() {
    if (XMLhttp.readyState==4) {
        MyShow.InnerText = XMLhttp.responseText;
   }
   if (XMLhttp.readyState==3) {
        MyShow.InnerText  = ('正在提交數據');
   }
  }
    XMLhttp.send(null);
}
</script>
a.ASPx提供可數據
XMLhttp.open("GET","a.aspx",true);就是請求a.ASPx


    if (XMLhttp.readyState==4) {
        MyShow.InnerText = XMLhttp.responseText;
   }
當異步請求完成時,用DHML改變MyShow的內容。

二、GET方法
更改a.ASPx如下:
<script runat="Server" language="C#">
string flag = Request["flag"] == null ? "" : Request["flag"];
switch(flag)
{
    case "1":
        Response.Write("11111111111111");
        break;
    case "2" :
        Response.Write("22222222222222");
        break;
}
</script>
把b.ASPx中
xmlhttp.open("GET","a.aspx",true);改成XMLhttp.open("GET","a.ASPx?flag=1",true);
則得到數據11111111111111
xmlhttp.open("GET","a.aspx",true);改成XMLhttp.open("GET","a.ASPx?flag=2",true);
則得到數據22222222222222

三、POST方法
如果有這樣一個表單
<form method=post>
    <input name="p1" type=text />
<input name="p2" type=submit/>
</form>
AJax就是
<div id="MyShow"/>

<script language="JavaScript">
    var xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
    //數據傳輸,flase為非異步方式
    XMLhttp.open("Post","a.ASPx",true);
    XMLhttp.onreadystatechange=function() {
    if (XMLhttp.readyState==4) {
        MyShow.InnerText = XMLhttp.responseText;
   }
   if (XMLhttp.readyState==3) {
        MyShow.InnerText  = ('正在提交數據');
   }
  }
       XMLhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    XMLhttp.send("p1=qwdqwdqwdqwd"); //這裡是POST要提交的數據。
}
</script>

而一般模擬請求都是POST和Get同時存在的
只要把
 XMLhttp.open("Post","a.ASPx",true);
裡a.ASPx加上get請求部分就可以了。

而在.Net中特別得,可以把Ajax寫成服務器組件來使用。現在在實際項目中如果使用Ajax很多的情況,就有個專門的組件來使用了。還有就是要注意,在很多時候AJax的時候要設置頁面不緩存。而如果要兼容非IE內核浏覽器,那麼就要注意各種內核浏覽器的JS是否兼容了。

http://birdshover.cnblogs.com/archive/2006/07/03/441439.Html

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved