作者:EasyJF開源團(tuán)隊(duì)(www.easyjf.com) 大峽
前幾天與瞌睡蟲.cn在MSN上閑聊,他說最近看了一本吵得有點(diǎn)熱的書,是關(guān)于ajax技術(shù)的,我問他寫得怎么樣,他說被騙了,我說為什么,他說里面全是講的全是CSS、Javascript、XML,都是以前我們的項(xiàng)目中用到的,我說確實(shí)是如此,然后他就開始郁悶ing。
Ajax(Asynchronous JavaScript and XML),中文翻譯即異步加哇十塊撲特與二克十二蒙(:-0),這個詞好像是2005流行起來的吧,借用某位大蝦的一句話:“新瓶裝老酒”。不過這酒不但可口,還易醉人。這不,您看各大大小小的網(wǎng)站都推出了Ajax專題、Ajax開發(fā)指南,各大牛、小牛紛紛發(fā)表文章介紹評論Ajax,各大大小小專家、學(xué)者、書商一起接二連三出了一本又一本的有關(guān)ajax圖書(書也很好出啊,把以前有關(guān)dhtml、css、javascript、xm、xmllhttp等技術(shù)資料一Copy,再來一個Encapsulation即封裝,幾百上千頁的書就出來了),讓我們不得不感嘆學(xué)術(shù)界真是繁榮昌盛啊。
有些熱心的大師甚至預(yù)測,ajax將改變并有可能代替?zhèn)鹘y(tǒng)Web的開發(fā)模式。讓很多剛學(xué)JSP、Struts的Newbie甚至懷疑自己是否投錯了胎、選錯了路。
一直想湊熱鬧寫一些關(guān)于Ajax的話題,但一直不好動手,這里忽悠幾句。搞B/S開發(fā),不需要花太多的學(xué)這些,重點(diǎn)還是要把b/s的基本知識學(xué)扎實(shí),客戶端的理論包括dhtml、css、javascript、xml等,J2EE服務(wù)器端還是萬變不離其宗的設(shè)計(jì)模式、UML建模、Servlet、JDBC或ORM系統(tǒng)、XML、EJB及一些框架、工具等。
Ajax更多的應(yīng)用于胖客戶端,在大多數(shù)的B/S項(xiàng)目中,只有在很少的地方需要用到,它還算不上一門技術(shù),只是一個小工具,對于一個有經(jīng)驗(yàn)的Web開發(fā)人員(熟悉dhtml、javascript及xml)來說,只需要看看MSDN中有關(guān)XmlHttp的Api文檔,半小時就能會Ajax。
Ajax只有在適當(dāng)?shù)牡胤讲艜玫剑布葱枰诤笈_進(jìn)行大量數(shù)據(jù)處理(充當(dāng)消息通知機(jī)制),需要頻繁的定時或不定時從服務(wù)器中讀取數(shù)據(jù)的時候。
比如我們常接觸電子郵件系統(tǒng)中,因?yàn)殡娮余]件系統(tǒng)一般都由電子郵件服務(wù)器及客戶端組成,當(dāng)用戶通過web登錄電子郵件系統(tǒng)時,web服務(wù)器需要從郵件服務(wù)器中收取郵件內(nèi)容,這個郵件收取的過程有時會比較長,而且在用戶閱讀郵件的過程中不定時的還有有新郵件出現(xiàn)。在這些系統(tǒng)中使用Ajax技術(shù),則可以在用戶登錄的時候,不用收完全部郵件信息就返回客戶端,同時服務(wù)器端不斷的從郵件服務(wù)器中檢測并搜取郵件,而Ajax客戶端啟動一個定時刷新不斷的從服務(wù)器終讀取信息,一旦發(fā)現(xiàn)有新的郵件就可以直接反映在用戶的Web界面中。
若不使用Ajax,則要讀取服務(wù)器端的新信息需要刷新一次頁面,可以通過設(shè)一些IFrame等方式來處理,但由于Ajax傳回來的是結(jié)構(gòu)化的xml數(shù)據(jù)信息,因此可以很好的通過javascritp進(jìn)行數(shù)據(jù)處理。
在聊天室系統(tǒng)中經(jīng)常用到,道理同上并且更容易理解!
另外一個例子是我們經(jīng)常見到的樹狀結(jié)構(gòu),當(dāng)樹總節(jié)點(diǎn)少的時候,可以一次性讀出來然后客戶端用javascript處理,但當(dāng)總節(jié)點(diǎn)有成千上萬過的時候,這時就不能一次性讀出來,因?yàn)榭蛻舳耸翘幚聿贿^來的,就需要用到ajax技術(shù),開始只讀最上層的節(jié)點(diǎn),當(dāng)用戶選某一節(jié)點(diǎn)的時候,到服務(wù)器端讀取選中節(jié)點(diǎn)的子節(jié)點(diǎn)。
另外,Ajax在網(wǎng)頁模式對話框中也常用到(即window.showModalDialog方法彈出新頁面),因?yàn)槟J綄υ捒蛑腥粜枰?wù)器提交數(shù)據(jù)時,是不能直接用form提交的,因此通過Ajax技術(shù)提交更方便。
在全國人民及全世界人民的努力下,現(xiàn)在已經(jīng)出了很多有關(guān)ajax的框架,使用ajax技術(shù)也更加容易了。Ajax不神奇、技術(shù)上沒有任何新東西,更多屬于設(shè)計(jì)范湊,總的來說還算不上什么東西。說白了,其重點(diǎn)是xmlhttp組件的應(yīng)用,其它的內(nèi)容就是Web開發(fā)中經(jīng)常所需的材米油鹽(即dhtml、javascript、xml等了),巧媳婦手藝再好也必需要有材米油鹽才能下廚房。因此,對于剛接觸Web開發(fā)的朋友來說,應(yīng)該花有限的精力及時間去學(xué)什么、做什么,自己看著辦吧。呵呵!
(轉(zhuǎn)載請保留作者聲明)
?