一、導言
我們知道,ASP.net應用程式事實是在伺服器上啟動並執行,使用者的請求要不斷地送往遠端伺服器,伺服器執行完本地的程式後把重新裝載頁面再發送客戶 端。所以就出現了不斷重新整理的問題,頁面不斷閃爍。使用者不厭其煩,運行效率也大大4降低,伺服器的負荷加重。事實,用戶端的請求在某一時刻只是通過向 Web 服務器提 交新的請求來檢索對使用者輸入所做的響應。這種情況下,開發人員可以使用 JavaScript 在用戶端上載入所有響應,從而提供更好的使用者體驗。遺憾的是,在很多情況下, 不必將所有響應都返回或載入到 JavaScript 要更好,只返回所要的結果,執行過程仍然在伺服器上運行。AJAX 提供了一種新的中間選擇,能夠在維持及時響應和靈活性的 同時利用基於伺服器的應用程式。
AJAX依靠伺服器作為中介來分發和處理請求。為了完成這項工作,.net封裝類依賴於用戶端的請求對象,而xmlHttpRequest對象被 大部分的瀏覽器支援,因此使用這個對象是一個不錯的解決方案。
因此,為了實現不重新整理的頁面,我們的用戶端頁面做成靜態頁面。靜態頁面通過Ajax.net調用.net 類的方法。這是一種最簡潔又高效的解決方案。
二、如何應用Ajax.net
1.在工程中引入Ajax.dll檔案。
Ajax.dll是微軟開發的應用在asp.net上的一 個類庫檔案。該類庫封裝了XmlHttpRequest請求伺服器的實現細節,是Ajax知識應用在asp.net平台上的解決技術。在.net項目中,添加上對其的引用,然後就可以開始使用 ajax.dll封裝進行開發了。
2.在web.config中設定HttpHandle
為了使其可以工作,第一步必須做的是在web.config中安裝設定封裝包的HttpHandle,不去詳 細解釋HttpHandle是如何工作的,我們只需要瞭解他們可以用來處理asp.net請求。例如,所有的目的為*.aspx的請求可以通過System.Web.UI.PageHandlerFactory類發送到 控制控制代碼,簡單的說,我們把任何向ajax/*.ashx的請求發送到Ajax.PageHandlerFactory的請求處理控制代碼。
3.編寫服務端函數
現在我們編寫伺服器端函數, 他們可以被用戶端非同步調用。儘管現在還不能支援全部的傳回型別,我們仍堅持伺服器端添加功能。在codebehind檔案的頁面類裡,添加下面的方法:
[Ajax.AjaxMethod()]
public int ServerSideAdd(int firstNumber, int secondNumber)
{
return firstNumber + secondNumber;
}
注意,這個函數有Ajax.AjaxMethod()定製屬性,屬性服務會告知ajax封裝類為此方法建立一個javascript代理,這樣才能被用戶端調用。