現(xiàn)在AJAX比較火,很多大的公司在推出相關(guān)的開發(fā)庫和工具。本人前一段碰巧有機(jī)會(huì)從頭開發(fā)一個(gè)網(wǎng)絡(luò)應(yīng)用,對AJAX相關(guān)資料進(jìn)行了一番評估,結(jié)果沒有采用。主要的感受就是:AJAX實(shí)在是一個(gè)雞肋。
最開始留意AJAX是在使用Gmail 的時(shí)候,覺得很順手,沒有一般的網(wǎng)絡(luò)應(yīng)用那種礙手礙腳的感覺。后來看了一下 Google 和 Microsoft 的地圖服務(wù),如果不是用AJAX一定會(huì)操作非常繁瑣。這些都是AJAX的殺手應(yīng)用,正是這些讓開發(fā)人員重新燃起了對DHTML的熱情。因應(yīng)市場需要,開源社區(qū)和一些大公司如 Microsoft, Yahoo 等都開始提供開發(fā)工具,現(xiàn)在可以使用的已經(jīng)很多了。
之所以我在開發(fā)目前的軟件最終放棄了AJAX,有幾點(diǎn)原因:
首先,AJAX的開發(fā)和維護(hù)成本太高。部分原因在于目前可用的開發(fā)庫很不完善,你必須理解不用這些庫,直接使用 Java Script, CSS, DOM, XML 和 XHTTP 如何開發(fā),因?yàn)橛行┕δ苣阍趲炖锸钦也坏降摹_@對于項(xiàng)目組的要求很高,所有的成員必須要有一個(gè)長時(shí)間的適應(yīng)過程。不同的庫使用方法和架構(gòu)很不同,很難借用不同庫里較好的功能,Copy / Paste 大法不起作用?;贘ava Script 的編程實(shí)在是軟件工程的一個(gè)倒退,小的界面不復(fù)雜的應(yīng)用還好(當(dāng)然,這種程序也不必要用AJAX),大的程序編起來簡直是惡夢,代碼的封裝和邏輯的分離很困難,又跟HTML攪在一起,很難讀的懂,又沒有工具可以顯示一下類圖等,可以說用傳統(tǒng)的ASP.NET或JSP可以幾天干完的活,用AJAX得至少多一倍時(shí)間。
其次,性能調(diào)優(yōu)比較麻煩??蛻舳伺c服務(wù)器的交互必須很好的設(shè)計(jì),否則速度還不如ASP的好,刷新局部比整個(gè)頁面還慢。調(diào)整個(gè)別地方的性能常會(huì)導(dǎo)致整個(gè)架構(gòu)的變化。
另外,瀏覽器兼容的問題很麻煩。要知道很多對瀏覽器敏感的代碼并避免使用,而且,有時(shí)候必須要分別對不同瀏覽器實(shí)現(xiàn)同一邏輯。測試的工作真的很煩人。
回過頭來想一想,AJAX確實(shí)可以使用戶的體驗(yàn)上一個(gè)層次,但能否帶來很多新的客戶是一個(gè)問題。如果Gmail仍然有大容量郵箱,免費(fèi)而且可以使用POP3收發(fā),即使沒有AJAX我還會(huì)使用,也沒有人會(huì)僅僅因?yàn)檫@個(gè)就換郵箱。對Google來說,他有錢,可以提升企業(yè)形象,有長遠(yuǎn)的好處。對大多數(shù)開發(fā)企業(yè)應(yīng)用的企業(yè),這是比較虛的投資。
從長遠(yuǎn)的角度看,AJAX 只是不得已而使用的,而且目前可用的 UI 設(shè)計(jì)解決方案。用戶界面編程必將向?qū)崿F(xiàn)目前的桌面程序所能達(dá)到的可用性發(fā)展,AJAX再怎樣進(jìn)步,也不能擺脫DHTML的能力。最終的解決方案最可能的是設(shè)計(jì)新的UI描述語言,可以完整的支持與桌面應(yīng)用類似的用戶體驗(yàn),同時(shí)支持程序員們熟悉已久的類似 JAVA 或 MS.NET 的 OO 設(shè)計(jì)方法和工具??梢钥吹剑④浺呀?jīng)推出了XAML的測試版本,其他開源組織和大公司也在朝著這一方向努力。當(dāng)然,在新的標(biāo)準(zhǔn)亂戰(zhàn)的時(shí)候,AJAX會(huì)憑借其即存的廣泛支持有一個(gè)不錯(cuò)的發(fā)展,尤其是在門戶網(wǎng)站上取得更多的應(yīng)用。但是,警鐘已經(jīng)敲響,AJAX在企業(yè)軟件市場將很快過時(shí)。比如,SAP就已經(jīng)要在后續(xù)開發(fā)中使用一種基于Flash的UI開發(fā)環(huán)境了,它可以提供超過桌面應(yīng)用的用戶體驗(yàn)。我的一個(gè)朋友說,AJAX只是半個(gè)RIA,他說的不錯(cuò)。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=602509 |
|