查看單個文章
舊 2006-07-05, 05:45 AM   #3 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

Ajax並不神秘:揭下各種Ajax控件和類庫的小褲衩

Ajax控件和類庫現在真的太多了,不知不覺中增加了Ajax的神秘性和複雜性,看到版內很多人為此費解和傷神,決定發此貼談談本人對Ajax的觀點,希望能讓大家對Ajax有一個本質的認識。

觀點一:Ajax和服務器端技術毫不相關

嚴格的說,與傳統web開發相比,Ajax是完完全全的客戶端技術。由於很多控件封裝了客戶端和服務器端的通信過程,因此很多問題也因通信而起。事實上,不論何種Ajax技術,服務器端都是返回的一個純文本流,再由客戶端來處理這個文本。這段文本可以是xml格式,也可以是一個Html片段,也可以是一段JavaScript腳本,或者僅是一個字元串。服務器端僅僅是作為一個資料接頭,客戶端使用XMLHttpRequest對像來請求這個網頁面,服務器端在網頁面內寫入結果文本,這個過程和普通的web開發沒有任何區別。所不同的只是,客戶端在異步獲取結果後,不是直接顯示在網頁面,而是由客戶端的Javascript腳本處理後再顯示在網頁面。至於各種控件所謂的能返回DataSet對象,Date對象,或者其他的資料類型,都是封裝了這個處理過程的結果。

觀點二:DOM模型是Ajax最本質的技術

之所以沒有把XMLHttpRequest列為最本質的技術,因為本人覺得它實在是太簡單了,它只是可以讓瀏覽器在後台請求一個網頁面,並將其內容交給JavaScript處理。真正的核心應該是:DOM模型,即文檔對像模型。在DOM模型裡,Html標記都被認為是一個對象,例如:div對象,table對像等等。DOM模型就規定了這些對像所具有的內容、方法和事件。通過這些性質,可以對一個已經顯示於瀏覽器的網頁面進行內容的修改,例如增加節點、修改節點位置,刪除節點等等。而不僅僅是一個innerHTML內容這麼簡單,雖然這是一個很有用的內容。

觀點三:在使用Ajax控件前理解它們的實現

使用Ajax控件的確可以提高效率,但如果你空中樓閣般使用控件,那就得不償失了。從一個控件換到另外一個控件又會有一個漫長的學習曲線。所以應該從底層瞭解其,況且Ajax實在不是什麼高深的技術。其實任何東西的最底層其實都是簡單的,但如果封裝了這些底層的東西,事情會變得複雜和難以理解。以Asp.net為例,它的定制特性可以使得只要在方法前加上[ajax method]類似這樣的標誌就可以稱為一個異步方法,相信這使得Asp.net的Ajax開發顯得更加「高效」或者是「神秘」,而更多的事情則被封裝了。同樣記住一條,任何對服務器端的請求僅僅是返回純文本,我們不一定要依賴於封裝好的處理過程,而完全可以自己來實現。

觀點四:學好JavaScript

在大多數人看來,JavaScript總不是那麼一種正規的語言,隨便copy一段就碰巧能執行,學過c之類的人,一看也能看懂,而且在瀏覽器中常常有腳本錯誤提示,所以潛意識覺得總不能付之以大任。事實上,要學好Ajax,這就完全是一種錯誤的看法。javascript作為一種腳本語言,其語法的確不是很嚴格,但並不妨礙其完成諸多複雜的任務,沒有JavaScript,就沒有Ajax。所以本人強烈建議,學Ajax前,一定要好好研究一番JavaScript,一般來講,如果能順利看懂prototype框架的代碼(如:prototype-1.3.1.js),你的JavaScript水平就基本過關了。同時對DOM模型也可以算有一個基本的瞭解。

觀點五:Ajax點綴:CSS

用JavaScript控制CSS其實很簡單,基本上每個DOM對象都有一個style對象,只要把css內容裡的"-"去掉,並讓隨後的字母變為大寫就可以作為內容使用了,例如:element.style.backgroundColor="#f00";在css是:選擇符 {background-color:#f00}

一口氣說這麼多,希望對大家有點用處^_^
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次