![]() 自從Jesse James Garrett創(chuàng)造了Ajax這個(gè)名詞,到現(xiàn)在已經(jīng)過(guò)去十八個(gè)月了,AJAX幾乎讓W(xué)eb開(kāi)發(fā)徹底改頭換面。在這一年半的時(shí)間里,發(fā)生了很多事情,包括Web 2.0的熱炒,許多創(chuàng)建或使用富互聯(lián)網(wǎng)技術(shù)公司的誕生或復(fù)蘇,還有真正動(dòng)態(tài)化的在線(xiàn)軟件層出不窮。很明顯,AJAX這個(gè)名詞受到開(kāi)發(fā)業(yè)界的廣歡迎,已經(jīng)真正的走入到我們生活中,Web應(yīng)用程序也達(dá)到前所未有的發(fā)展。
然而我們大多數(shù)人知道,其實(shí)在AJAX這個(gè)術(shù)語(yǔ)誕生前,這項(xiàng)技術(shù)的發(fā)展就已經(jīng)為人們所熟知了。之所以AJAX的思想能迅速占據(jù)我們的頭腦,因?yàn)樗蛭覀冎赋隽艘粋€(gè)重要的新開(kāi)發(fā)方向,AJAX技術(shù)可以說(shuō)到了爆發(fā)的時(shí)間。強(qiáng)大功能的瀏覽器、高速帶寬的網(wǎng)絡(luò)連接、在線(xiàn)軟件的趨勢(shì)和開(kāi)發(fā)工具的發(fā)展,這一切注定了AJAX的流行,但是在這些榮譽(yù)的光環(huán)背后關(guān)于Ajax的討論或爭(zhēng)論也一直沒(méi)有停止過(guò)。 一直以來(lái),Web開(kāi)發(fā)社區(qū)關(guān)于Ajax方方面面的事情一直在爭(zhēng)論不體,包括它的強(qiáng)大和不足、合適的應(yīng)用和不可避免的缺陷等。我想我也應(yīng)該分享一下我的觀點(diǎn),對(duì)于過(guò)去十八個(gè)月里讓W(xué)eb和瀏覽器煥發(fā)生機(jī)的AJAX技術(shù),談一下我的看法。AJAX的確幫助我們走向了下一代主流軟件平臺(tái),它在創(chuàng)建個(gè)人或商業(yè)應(yīng)用等方面,已經(jīng)超越了傳統(tǒng)的軟件開(kāi)發(fā)平臺(tái),以下僅僅是我的個(gè)人觀點(diǎn)。 1、 不為瀏覽器而生的Ajax 如果你是一個(gè)網(wǎng)絡(luò)高手,你對(duì)Ajax一定不會(huì)陌生,從先前默默無(wú)聞到現(xiàn)在火爆發(fā)展,不可不稱(chēng)為這是一個(gè)奇跡,Ajax在五年前并沒(méi)有向今天這樣讓人們所熟知,因?yàn)樗徊⑹菫闉g覽器而生的一種技術(shù),Ajax低效的代碼編寫(xiě)方式,同時(shí)也沒(méi)有強(qiáng)大的第三方開(kāi)發(fā)工具支持,要想設(shè)計(jì)出清晰的javascript軟件,不經(jīng)過(guò)嚴(yán)格的訓(xùn)練和努力是無(wú)法實(shí)現(xiàn)的,而且在不同的瀏覽器里調(diào)試Ajax,是一件非常令人頭疼的事情。 2、量身訂做自已的Web服務(wù)需求 我一直認(rèn)為Ajax要開(kāi)發(fā)許多新的Web服務(wù),來(lái)滿(mǎn)足應(yīng)用程序數(shù)據(jù)和后端存儲(chǔ)的需要。實(shí)際上,對(duì)于那些沒(méi)有正規(guī)的Web服務(wù)架構(gòu)的服務(wù)終端項(xiàng)目,更傾向于使用HTML或簡(jiǎn)單的傳統(tǒng)的HTTP POST。這樣就使得人們可以非常容易的轉(zhuǎn)向Ajax開(kāi)發(fā),可以在后端輕松的重用已經(jīng)存在的HTTP服務(wù),而不是轉(zhuǎn)向復(fù)雜的SOAP或REST/WOA等。盡管這可能導(dǎo)致體系結(jié)構(gòu)的混亂,可能會(huì)對(duì)日后帶來(lái)一些麻煩,但它的確可以讓人們非常輕松的轉(zhuǎn)向AJAX開(kāi)發(fā)提供條件。 3、Ajax比傳統(tǒng)Web設(shè)計(jì)和開(kāi)發(fā)更棘手 HTML界面約定的喪失性、隱藏或潛在功能的無(wú)限制性、編程創(chuàng)建頁(yè)面元素非聲明性、以及其他一些Ajax的內(nèi)在特性,這些特性都與傳統(tǒng)的Web設(shè)計(jì)和開(kāi)發(fā)方式背道而弛,Ajax并且要求Web設(shè)計(jì)者必須對(duì)DOM、Javascript和CSS的技術(shù)有相當(dāng)?shù)墓Φ祝瑢?duì)于一個(gè)傳統(tǒng)的Web開(kāi)發(fā)者來(lái)說(shuō)還沒(méi)有一條更便捷的路可以選擇,同時(shí)也沒(méi)有一款能夠讓開(kāi)發(fā)變簡(jiǎn)單的開(kāi)發(fā)工具,我們期待Ajax能夠在Web開(kāi)發(fā)中更易懂、更高效。 4、Ajax工具和組件仍在不斷出現(xiàn),現(xiàn)今還沒(méi)有明顯的領(lǐng)先者。 Ajax工具和組件滿(mǎn)天飛,不像Eclipse一枝獨(dú)秀,統(tǒng)領(lǐng)全雄,雖然Dojo在這個(gè)領(lǐng)域有很好的口碑,但這些成績(jī)還是遠(yuǎn)遠(yuǎn)不夠的。例如,Dojo框架目前的版本依然是0.3版。而且緊隨其后的種種工具,框架和組件庫(kù)還有很多,其優(yōu)點(diǎn)和Dojo不相上下。Dojo的優(yōu)勢(shì)還不名顯,開(kāi)發(fā)人員面對(duì)如此多的選擇往往是投其所好,所以在工具和組件方面還沒(méi)有絕對(duì)的領(lǐng)先者可供選擇。 5、優(yōu)秀的Ajax 程序員很難找。 有人說(shuō)曾經(jīng)說(shuō)過(guò)一個(gè)優(yōu)秀的Java開(kāi)發(fā)人員好找,但是一個(gè)優(yōu)秀的Ajax人才,卻是比登天還難,雖然此語(yǔ)有些太過(guò),但是我們不難看出,要建造一個(gè)復(fù)雜的Ajax應(yīng)用要遠(yuǎn)比Web設(shè)計(jì)技能難得多,而且很多有經(jīng)驗(yàn)的開(kāi)發(fā)人員都不太喜歡JavaScript編程和調(diào)試,這種情況自然就形成了Ajax優(yōu)秀人才的缺少。 6、必須積極地對(duì)付瀏覽器模型對(duì)Ajax的限制。 Ajax技術(shù)并非Web開(kāi)發(fā)完美結(jié)合的產(chǎn)物,它有幾個(gè)致命的弱點(diǎn),一個(gè)是它會(huì)違反現(xiàn)有的Web模型,譬如,加書(shū)簽,后退按鈕等等。另外,Ajax也缺乏桌面軟件的的很多強(qiáng)處,譬如能離線(xiàn)運(yùn)行,訪問(wèn)本地硬盤(pán)存儲(chǔ)等,但Flash 的本地存儲(chǔ)和即將發(fā)行的Apollo平臺(tái)能應(yīng)付這類(lèi)問(wèn)題,Ajax要想再次成為眾的焦點(diǎn),解決上述問(wèn)題刻不容緩。 7、Ajax 只是成功RIA策略的一個(gè)因素。 如果你想讓Ajax實(shí)現(xiàn)更多的在線(xiàn)功能,那么你必須將類(lèi)似Flex,OpenLaszlo,以及WPF/E等這樣的RIA平臺(tái)放在考慮范圍之內(nèi),然而Ajax對(duì)此幾乎無(wú)能為力。然而Ajax并未停止前進(jìn)的腳步,特別是在后端服務(wù)器向服務(wù)器端推送、Web服務(wù)和企業(yè)環(huán)境的支持等,這也是Ajax在RIA策略上的成功的一個(gè)因素。 當(dāng)然,軟件項(xiàng)目應(yīng)該知道的事情還有很多,還有許多其他的事情,以上是我認(rèn)為比較重要的事情。受到全球面向服務(wù)價(jià)格體系增長(zhǎng)的影響,在線(xiàn)AJAX組件正在不斷的出現(xiàn),例如Google Maps等,,Ajax的技術(shù)也在不斷理新,道瓊斯新聞曾報(bào)道IBM、Google、雅虎、甲骨文等IT巨頭聯(lián)手支持Open Ajax計(jì)劃。IBM、Google、雅虎、甲骨文和BEA系統(tǒng)等許多高科技公司宣布共同支持一個(gè)開(kāi)源軟件計(jì)劃,旨在推廣一種名為“Ajax”的新興的Web開(kāi)發(fā)技術(shù),有了這些IT大享們的加入,解決上述七個(gè)問(wèn)題應(yīng)該指日可待。 Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1566125 |
|