DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 詳解Ajax在ASP.NET中的實現方式
詳解Ajax在ASP.NET中的實現方式
編輯:AJAX詳解     

AJax 應該不是一項技術,是一種思想而已,跟ASP.NET 以及其它web開發語言沒有什麼太大關系,這裡只是談談 ASP.Net 中目前使用的Ajax 技術以及其它一些實現 AJax 的優秀框架。
Ajax已經很流行一陣子了,現在談Ajax覺得有點老土。目前所謂的Web2.0 網站,基本上沒有不使用Ajax 的,就如使用RSS一樣,就如同一個標簽,貼上去就成了 2.0。AJax 具體細節不談,其目的就是讓用戶觸發一些操作的時候,頁面不會全部刷新,只刷新待更新的“部分頁面”,加載數據的過程中,用 Loading 的圖片來表示正在加載數據,不只是看起來挺不錯,也提高了用戶的訪問體驗,有一種酷酷的感覺。

至於ASP.NET 中用到的Ajax ,我想大多數人使用的是Ajax.net / AJaxProfessional 或者ASP.Net 2.0 中帶有的Atlas 框架。因為都用過,我感覺這些都不是很好的AJax 解決方案。

AJaxPro用起來不是很方便,頁面需要在Page_Load 裡面注冊,類似於

以下是引用片段:
private void Page_Load(object sender, System.EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(DataAccess.MyAJax));
}

而且ASPX 頁面要包含一個Runat=Server 的標記,這樣AJax.Net 會將用到的一些通用函數以及你自定義的函數加載進來,如果沒有 其實也可以,手動添加就可以了。但是,在我以前做過的應用中,時常出現的一些問題,比如,經常發現浏覽器狀態欄會有JS 腳本錯誤,而此時你所做的Ajax 效果會全部失效,解決辦法就是,把那個 Ajax.dll /AJaxPro.dll 給重新覆蓋一下就可以了,問題的原因究竟是什麼,目前還不知道。

至於Atlas,我對它的感覺其實就跟對DataGrid 的感覺一樣,嗯,這種控件的好用是好用,很方便,但是,真正做一些Web 應用的時候,你不得不考慮到性能以及分層等各種問題。我想,在比較正式的Web 應用中,沒幾個人去用 DataGrid 去顯示一些數據吧,建議大家盡量少用這些控件。另外就是,Atlas 的執行效率確實不夠理想,一直在那裡 Loading,等了好長時間,竟然出現什麼腳本錯誤,汗。

那還有沒有其它解決方案嗎?你可以自己寫些Javascript 函數去實現。不過,我這裡推薦用jQuery 這個Javascript 框架,從百度百科引用一段對其的介紹:

jQuery 是繼prototype之後又一個優秀的Javascrīpt 框架。其宗旨是——WRITE LESS,DO MORE,寫更少的代碼,做更多的事情。

它是輕量級的js庫(壓縮後只有21k) ,這是其它的JS庫所不及的,它兼容CSS3,還兼容各種浏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。

jQuery是一個快速的,簡潔的JavaScript 庫,使用戶能更方便地處理Html documents、events、實現動畫效果,並且方便地為網站提供 AJax 交互。

jQuery還有一個比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。

jQuery能夠使用戶的html頁保持代碼和html內容分離,也就是說,不用再在Html 裡面插入一堆JS來調用命令了,只需定義id 即可。

看來這段介紹你會知道,Ajax 效果只是 jQuery 的眾多功能的一種,一般來說,Web 應用中使用AJax,必然也離不開Javascript,而jQuery 正是為大家封裝了一些 JS 函數,使得你不在被JS 的紛繁復雜所擔心,一切由jQuery 幫你實現。

看一個小例子,就知道用jQuery 做 AJax 實在是太方便了。

比如某個 ASPX 或者 Html 頁面裡面有個Button,點擊觸發AJax加載數據,顯示到裡面。點擊那個Button 觸發一個JS函數即可:

以下是引用片段:
function GetNews()
{
$("#News").Html("Loading News......");
$.AJax({
type:"post",
url:"/AJax.ASPx?act=getnews",
dataType:"Html",
data:"",
success:function(result)
{
$("#News").Html(result);
}
});
}

這個函數就會先在那個 SPAN 裡面顯示“Loading News....”,通過異步調用,訪問 /Ajax.aspx 這個頁面,通過傳遞的 URL 參數 act=News 告訴頁面需要什麼類型的數據,你可以根據不同的參數,將數據通過AJax.ASPx 直接 Write 到頁面上,然後返回給上述 JS 函數,呈現到頁面上,就這樣簡單搞定!

當然,jQuery 裡面並不是只有這一種AJax 效果實現方式,這裡給出一些jQuery 的資源,花上幾個小時的時間學一下,很值得:

jQuery 官網:http://jquery.com/

jQuery 中文 API 文檔: http://jquery.org.cn/visual/cn/index.XML

jQeury 中文入門教程: http://www.k99k.com/jQuery_getting_started.Html

至於其它的Javascript優秀框架有很多了,比如Yahoo! User Interface Library,Prototype,Rico,Qooxdoo,Dojo 等,另外還有AJax 方面一些資源可以參考一下這裡收集的資源。

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