淺談AjaxPro.dll,asp.net 前臺js調(diào)用后臺方法
1、什么是Ajax
Ajax是異步Javascript和XML(Asynchronous JavaScript and XML)的英文縮寫。"Ajax"這個名詞的發(fā)明人是Jesse James Garrett,而大力推廣并且使Ajax技術(shù)炙手可熱的是Google。Ajax的核心理念在于使用XMLHttpRequest對象發(fā)送異步請求。
2、為什么使用
- Ajax減輕服務(wù)器的負(fù)擔(dān)。Ajax的原則是"按需取數(shù)據(jù)",可以最大程序地減少冗余請求,減輕服務(wù)器的負(fù)擔(dān)。
- 無需刷新頁面,減少用戶心理和實際的等待時間。特別是在讀取大量數(shù)據(jù)時,不會像刷新頁面那樣出現(xiàn)白屏的情況,Ajax使用XMLHttpRequest對象發(fā)送請求并且得到服務(wù)器響應(yīng),在不重新載入整個頁面的情況下,用Javascript操作DOM更新頁面。因此在讀取數(shù)據(jù)的過程中,用戶所面對的不是白屏,是原來的頁面內(nèi)容(也可以加入一個"loading"的提示框讓用戶知道目前正在讀取的數(shù)據(jù)),只有在數(shù)據(jù)接收完畢之后才更新社會相應(yīng)部分的內(nèi)容。這種更新是瞬間的,用戶幾乎感覺不到。
- 帶來更好的用戶體驗
- 可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務(wù)器負(fù)擔(dān),充分利用帶寬資源,節(jié)約空間和寬帶租用成本。
- 可以調(diào)用外部數(shù)據(jù)
- 基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。
- 進(jìn)一步促進(jìn)頁面呈現(xiàn)與數(shù)據(jù)的分離
3、Ajax應(yīng)用場景
場景1:數(shù)據(jù)驗證
場景2:按需取數(shù)據(jù)
場景3:自動更新頁面
4、Ajax開發(fā)框架
- JQuery
- Ext
- YUI
- Qooxdoo
- DWR(Direct Web Remoting)
目前該產(chǎn)品被加入到WebWork中,開源(Apache)。可以在Javascript代碼中直接調(diào)用java方法的應(yīng)用框架,可以把Javascript中的請求調(diào)用轉(zhuǎn)遞到j(luò)ava方法中并將執(zhí)行結(jié)果返回給Javascript。
AjaxPro
AjaxPro是首家支持以各種方式通過javascript訪問服務(wù)端.net的免費(fèi)庫,類似于SAJAX。它能把Javascript請求發(fā)送到.NET方法,服務(wù)端傳回給Javascript,甚至包括串行化自定義類。其主要特點(diǎn)如下:
可以在Javascript中訪問Session和Application數(shù)據(jù);
緩存查詢結(jié)果
免費(fèi)使用源代碼
所有類支持Javascript客戶端返回數(shù)據(jù),可以在Javascript中使用DataSet
使用HtmlControls組件訪問和返回數(shù)據(jù)
頁面無需重載,用事件代理(數(shù)據(jù)訪問層)
因為只提供一個調(diào)用接口方法,所以服務(wù)端CPU占用非常少。
Magicajax
Magicajax以最簡單的方式將Ajax功能整合到頁面中,不需要修改ASP.NET控件,也不需要編寫新的控件,更不需要撰寫JAVASCRIPT,它有如下的特性:
應(yīng)用配置簡單,易于上手;
只用一個AJAXPANEL就實現(xiàn)Ajax功能,只要把需要無刷的控件放進(jìn)AJAXPANEL就可以了。
Ajax功能和普通的POSTBACK可以共存于一個WEBFORM,MAGICAJAX處理模塊只處理包含在AJAXPANEL中的控件的CALLBACK動作。
VIEWSTATE的內(nèi)容對于POSTBACK和CALLBACK來說,都是可見的,因此,無論是CALLBACK產(chǎn)生的VIEWSTATE,還是POSTBACK產(chǎn)生的,都是可見的;
提供一個類似POSTBACK的CALLBACK的事件模型
支持IE和Firefox
Anthem.NET
和傳統(tǒng)的Ajax技術(shù)相比,Anthem.NET有以下優(yōu)點(diǎn):
不需要任何技術(shù)升級,以前不會使用Ajax技術(shù)的人員,按照以往的編程方式就可以實現(xiàn)異步交互;
支持asp.net 1.1和asp.net 2.0
5、AjaxPro說明
本文檔將使用AjaxPro.Net框架實現(xiàn)Ajax功能:在客戶端異步調(diào)用服務(wù)端方法。AjaxPro.Net是一個優(yōu)秀的.net環(huán)境下的Ajax框架,用法很簡單,可以查閱相關(guān)資料,本文檔以一個簡單的實例講述使用AjaxPro的幾個關(guān)鍵點(diǎn),本例實現(xiàn)一個簡單的功能,服務(wù)器端將頁面中輸入的數(shù)字加1后的結(jié)果返回給客戶端(注意,必須有AjaxPro包,即AjaxPro.dll文件,可以在VSS上下載)。
6、AjaxPro實例說明
6.1、添加AjaxPro.dll應(yīng)用
2.1.1用VS打開項目,在其資源管理器中,右擊引用,左擊"添加引用",如圖1_1所示
圖1-1
2.1.2出現(xiàn)如圖1_2所示的對話框,點(diǎn)擊瀏覽,找到AjaxPro.dll文件所在的位置,雙擊AjaxPro.dll,然后點(diǎn)擊確定。
圖1-2
2.1.3在資源管理器的引用文件夾下,就可以看到AjaxPro了,說明添加引用成功,如圖1_3所示。
圖1-3
2.2、配置web.config
這一步的作用是保證客戶端向"ajaxpro/*.ashx"的請求(POST和GET)都被AjaxPro.AjaxHandlerFactory攔截。
打開web.config文件,在<configuration><system.web>后添加以下代碼,
<httpHandlers>
<addverb="POST,GET"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
如圖2_1所示。
圖2-1
2.3、添加服務(wù)端方法
2.3.1打開后臺代碼,在Page_Load方法體內(nèi)加上如下代碼,
AjaxPro.Utility.RegisterTypeForAjax(typeof(所在類的類名));
如圖3-1所示。
圖3-1
其作用是向客戶端輸出下面的代碼:
<script type="text/javascript" src="/ch33/ajaxpro/core.ashx"></script>
<script type="text/javascript" src="/ch33/ajaxpro/ch33.Verify,ch33.ashx"></script>
2.3.2、添加數(shù)字加一的方法,首先在方法前加[AjaxPro.AjaxMethod],然后像寫C#方法一樣寫方法,如圖3-2
圖3-2
注意:需要加上[Ajax.AjaxMethod]標(biāo)識,這樣才能夠被客戶端訪問
2.4、添加前臺代碼
在前臺添加JS腳本,調(diào)用服務(wù)器端方法,如圖4-1所示(Try.AjaxTest.Add(num),Try為頁面類,即AjaxTest類所在的命名空間,這里是Try;而AjaxTest即為類名,Add為方法名)
圖4-1
2.5、運(yùn)行程序,檢驗結(jié)果
按以上四個步驟,就可以實現(xiàn)預(yù)期的效果,如圖5-1所示。
AjaxPro.dll資源下載地址:http://xiazai.jb51.net/202007/yuanma/AjaxPro_jb51.rar
到此這篇關(guān)于淺談AjaxPro.dll,asp.net 前臺js調(diào)用后臺方法的文章就介紹到這了,更多相關(guān)AjaxPro.dll,asp.net 前臺js調(diào)用后臺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
window.showModalDialog兩次加載問題清除緩存方法
window.showModalDialog兩次加載問題:你第一次打開窗口后,第二次瀏覽器沒有從服務(wù)器端取數(shù)據(jù),而直接找到了你已經(jīng)下載的文件2013-08-08asp.net后臺如何輸出js腳本使用什么方法可以實現(xiàn)
asp.net后臺如何輸出js腳本,用page.ClientScript.RegisterStartupScript方式實現(xiàn),實現(xiàn)示例如下,感興趣的朋友不要錯過2014-01-01詳解ASP.NET Core 在 JSON 文件中配置依賴注入
本篇文章主要介紹了詳解ASP.NET Core 在 JSON 文件中配置依賴注入 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02asp.net 使用Response.Filter 過濾非法詞匯
一般信息發(fā)布網(wǎng)站,論壇等均具有實現(xiàn)非法詞匯過濾功能,即當(dāng)用戶錄入非法詞匯時,進(jìn)行替換,使其無法顯示到頁面上,針對此種功能,通常采用的時,在讀取時,在讀到非法詞匯后,進(jìn)行替換。2010-03-03asp.net下按鈕點(diǎn)擊后禁用的實現(xiàn)代碼
有時候為了不讓用戶連續(xù)的點(diǎn)擊某按鈕,我們會選擇將其在點(diǎn)擊后禁用。2010-09-09.NET?如何使用?OpenTelemetry?metrics?監(jiān)控應(yīng)用程序指標(biāo)
這篇文章主要介紹了.NET?使用?OpenTelemetry?metrics?監(jiān)控應(yīng)用程序指標(biāo),通過代碼演示了如何通過 OpenTelemetry 把 Metrics 的數(shù)據(jù)發(fā)送到 Prometheus 里進(jìn)行查詢與展示,然后又演示了自定義相關(guān)指標(biāo)來滿足業(yè)務(wù)數(shù)據(jù)指標(biāo)的監(jiān)控,需要的朋友可以參考下2024-06-06ASP.Net頁尾中添加JavaScript的最佳方法實戰(zhàn)分享
將JavaScript腳本或庫添加到asp.net頁的末尾方法有很多,究竟哪一個最好使呢有利于日后的維護(hù)啊,是個疑點(diǎn)啊,本文的出現(xiàn)將幫你解決所有的困惑,感興趣的你可不要錯過了哈2013-02-02