靜態頁中利用AJAX.NET實現無重新整理頁面

來源:互聯網
上載者:User

一、導言

我們知道,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代理,這樣才能被用戶端調用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.