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