ajax入門體會

這篇文章我不會引用網上任何一篇文章的原話,全是本身的感覺,相信會幫助很多想知道AJAX是什麼東西和怎麼應用的人,由於我也是初學者,因此寫的可能會有不對的,不對的地方但願老程序員們能指出來千萬不要誤人子弟,這也是我寫這篇文章的另外一個目的,好開始

注:我是使用ASP.NET的

AJAX的長篇理論我不想說,什麼全稱,什麼DOM,XMLHTTP什麼的網上資料一大堆本身去查,咱們瞭解一下就行。

[不用AJAX的頁面不叫WEB2.0,是WEB2.0的頁面都會用AJAX的]
使用AJAX的目的沒別的,就是實現無刷新更新頁面,所謂異步就是不用執行後臺程序,前臺就會獲得相應的改變值,從而實現前臺頁面改變數據的目的,而這個改變的值仍是經過後CS代碼操做改變的,聽起來會很不可意,這是怎麼做到的那,聽我慢慢說。

通過我這幾天的研究,在ASP.NET裏實現AJAX的方法可不僅一種
1.有直接用框架的:這種我比較喜歡,由於比較乾淨,用本身的框架,我試過Ajaxpro和Prototype,這兩種我用過了,以爲不錯,之後我還會繼續用,Jquery其實也屬於這一範疇,今天研究半天,沒太明白,多是我沒找到現成的框架吧,因此就不研究了
2.還有一種就是用微軟專門爲Ajax開發的控件包,叫做ASP.NET AJAX Control Toolkit,這個我沒太研究,網上有相關資料,想知道的能夠本身去查,裏面有不少現成的控件能夠實現AJAX。
3.用VS2005的能夠下個ASPAJAXExtSetup.msi,裏面有updatepanel控件也能夠實現AJAX,這個我只初步試了一下,也好用,不過原理還不太明白。

以上三種是我收集到的一些AJAX的實現方法,我要講的是第一種方法的應用,由於第一種能叫你明白AJAX的運行原理,比較適合初學者。
我主要講Ajaxpro,這是個組件,必須去網上下載,其實就是一個Ajaxpro.dll文件,注意,網上有兩種一種叫Ajax.dll一種叫Ajaxpro.dll,這兩種功能上是同樣的,就是添加引用的語句有些不一樣,下面我會分別說的。其實用AJAX都要下相關組件的,開始我也不習慣下什麼插件,可後來仍是下了,不下不行呀。我下到的是Ajax.dll,因此講時以Ajax.dll爲準。

應用篇,這如下的東西會借鑑網上其餘人的文章,在這裏聲明一下 1.先把Ajax.dll添加引用到項目中,別告訴我不會,若是連這個也不會就太那個了,和添加其餘DLL同樣,在項目上右擊,菜單上有個[添加引用],而後一步一步把那個.DLL文件添加進來,以後你會在項目的引用中看到那個Ajax.dll就是添加成功了 2.修改Web.config。在 <system.web> 元素中添加如下代碼。這裏的Ajax.dll和Ajaxpro.dll引用方法是不同的,必定要注意 <configuration> <system.web> <httpHandlers> <!-- Ajax.dll的配置文件寫法爲,我下載到的是這個 --> <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> <!-- AjaxPro.dll的配置文件寫法爲,根據你下載到的DLL文件選擇不一樣的配置語句--> <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/> </httpHandlers> </system.web> </configuration> 3對AjaxPro用到的頁Page_Load事件中進行運行時註冊。如:     protected void Page_Load(object sender, EventArgs e)       { Ajax.Utility.RegisterTypeForAjax(typeof(_Default));//是Ajax.dll的 AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//Ajaxpro.dll的       } //這的_Default是指頁面類的類名,就是這個頁面的名字。如是放在命名空間,則須要寫上完整的命名空間(如:namespaces._Default) 4建立服務器端方法          [Ajax.AjaxMethod]//這句必定要有,若是你是Ajaxpro.dll就寫成[AjaxPro.AjaxMethod]       public string getValue(int a,int b)       {          //該方法咱們將實現從客戶端傳入兩個數,在服務器端相加計算後返回到客戶端。這裏能夠寫在原來的頁後臺中也能夠單獨寫一個類。           return Convert.ToString(a+b);//這裏返回的就是前臺獲得的值,反正參數已經進CS文件了,想怎麼操做就怎麼操做,包括讀庫均可以。       }  5  客戶端調用。 <%@ Page language="c#" Codebehind="WebPage1.aspx.cs" AutoEventWireup="false" Inherits="Web.WebPage1" %> <script language="javascript">     function getValue()         {      //這裏若是是AjaxPor.dll就加Web._Default.getValue,若是是Ajax.dll就不用加命名空間以下               _Default.getValue(1,2,getGroups_callback);//該處即調用服務器端的_Default.getValue方法。     //_Default就是寫getValue的那個類,若是寫在本頁CS裏就是WebPage1.getValue,1和2是參數。       //這在裏邊getGroups_callback指定的是個回調函數,以接受服務器端處理完後返回客戶端結果。           }       //這個方法用戶接受並處理服務器端返回的結果。       function getGroups_callback(response)     {         var dt=response.value;//這個值就是最終傳回來的值,想怎麼用就怎麼用,反正回前臺了。 document.getElementById("Div_1").innerHTML=dt;     } </script>  <body> <div id="Div_1"> </div> <button </botton> </body>
相關文章
相關標籤/搜索