?? 從年初到現(xiàn)在,AJAX之風(fēng)預(yù)演愈烈,尤其是在國內(nèi),大多是一片叫好的聲音。目前好像很多人都在搞基于AJAX的框架,國外也有一些都已經(jīng)發(fā)布。對于這種一直都存在技術(shù),Google、微軟一造勢,大家的熱度好像有點(diǎn)過了頭。看來現(xiàn)在咱們這些程序員真的都是些追星族啊!
?? 難到AJAX真的就那么優(yōu)秀,值得提升到框架的高度,讓系統(tǒng)UI端圍著它轉(zhuǎn)?單純從AJAX本身來說,其最主要不過就是解決在網(wǎng)頁上一個無刷新獲取數(shù)據(jù)的問題,再加上減少了數(shù)據(jù)的傳輸量,將數(shù)據(jù)解析的工作推到了客戶端,的確能解決很多傳統(tǒng)的問題,很方便的實(shí)現(xiàn)一些動態(tài)效果。然而,要圍繞AJAX建立一個框架,通過AJAX完成UI端絕大部分內(nèi)容的展現(xiàn),我個人認(rèn)為卻是欠妥。現(xiàn)在很多人在網(wǎng)站上說,AJAX多多成熟,能達(dá)到多好多好的效果,但是問題是,AJAX技術(shù)本身成熟,但AJAX框架卻是十分的不成熟。
?? 筆者前一段一直在參與一個國外知名大公司的一個產(chǎn)品的開發(fā),這套系統(tǒng)好幾年前就開始做了,系統(tǒng)的UI很多是基于AJAX的,對AJAX的應(yīng)用可謂登峰造極(當(dāng)然,那個時候肯定還沒有AJAX這個名詞),其界面的可操作行幾乎可與桌面系統(tǒng)媲美。這系統(tǒng)有一個強(qiáng)大的AJAX框架,光是相關(guān)基礎(chǔ)JS文件就是數(shù)十個,整個UI基于Javascript事件驅(qū)動,數(shù)據(jù)由XMLHttp獲取。整個方案看上去的確很棒,或許正是現(xiàn)在很多人想要實(shí)現(xiàn)的。但實(shí)際情況是如何呢?效果是實(shí)現(xiàn)了,程序開發(fā)和測試、維護(hù)的效率則是大大的下降了。開發(fā)就不說了,前期投入巨大,系統(tǒng)復(fù)雜性劇增,程序也只能用IE訪問。測試的時候這邊 AJAX的javascript的bug滿天飛,那邊調(diào)試這種錯誤極不方便,沒有好的JS的調(diào)試器,更看不到實(shí)際輸出的html代碼。維護(hù)那就糟糕,加個新功能,JSP文件、標(biāo)簽、JS、后臺類全要過一遍。或許正是這些不易克服的問題,我看到在最近開發(fā)的配套軟件里,就基本沒有用什么AJAX了。
?? 大公司的嘗試和經(jīng)驗(yàn),或許能給大家一些啟示。說到底,所有的技術(shù)都是有利有弊的,AJAX也是一樣。我個人認(rèn)為AJAX 最適合的就是Google Map這種網(wǎng)上地圖系統(tǒng),展現(xiàn)方案相對比較單一,又非常的需要無刷新的獲取數(shù)據(jù)。對于那些業(yè)務(wù)比較多,展現(xiàn)風(fēng)格非常多樣的業(yè)務(wù)系統(tǒng),萬萬不可腦子一熱,真的要用什么AJAX框架,到頭了只回為了一點(diǎn)無謂的效果砸了自己的腳。
?? 最后強(qiáng)調(diào)一下,AJAX是個好東西,在項目里用它來實(shí)現(xiàn)一些輔助效果(最傳統(tǒng)的比如用戶輸入數(shù)據(jù)時實(shí)時的驗(yàn)證,給出相關(guān)提示)即快捷又神奇,但過度使用很容易讓自己系統(tǒng)陷入麻煩之中,一定要慎重!此外目前公布出來的所謂的那些AJAX框架大多都是實(shí)現(xiàn)一個Form或者一部分頁面的無刷新取數(shù),根本談不上什么Web框架,目前沒必要抱太大的希望。最近down了幾個開源的ajax的東西看了看,覺得對一般開發(fā)人員來說,ajaxtags (http://sourceforge.net/projects/ajaxtags/) 是個不錯的東東,簡單易懂,可以仿照它的標(biāo)簽做一些自己的實(shí)現(xiàn),值得看一看。
聲明:本博客中所有文章均為版主原創(chuàng),轉(zhuǎn)載請保留作者信息,并請注明出處。