AJAXWorld雜志主編 Dion Hinchcliffe 不久前發(fā)表了《你需要知道的有關(guān)AJAX的七件事情(Seven Things You Need to Know About AJAX)》一文。大意如下,
1。瀏覽器并不適合AJAX。第一個(gè)認(rèn)真的AJAX項(xiàng)目才開始一周,你會(huì)發(fā)現(xiàn)Ajax 幾乎已把瀏覽器推向其極限。事實(shí)是,沒(méi)有強(qiáng)有力的第三方開發(fā)工具,清晰地設(shè)計(jì)任何規(guī)模的 Javascript 軟件都需要訓(xùn)練有素和艱苦努力才成。在多個(gè)瀏覽器里調(diào)試Ajax應(yīng)用麻煩透頂,想要做些認(rèn)真的后臺(tái)或多線程更需要你使出渾身解數(shù),特別是你想結(jié)合那些用了數(shù)目有限的計(jì)時(shí)器的其他的組件。好消息是,簡(jiǎn)單的AJAX,(譬如點(diǎn)綴些DHTML),比大規(guī)模的AJAX要輕松得多了。但做好準(zhǔn)備,一旦你的應(yīng)用規(guī)模加倍,隨時(shí)擴(kuò)大開發(fā)和測(cè)試的努力。
2。你不需要你想象中的那么多 Web 服務(wù)。我原以為走Ajax這條路需要開發(fā)許多新的Web 服務(wù)來(lái)提供數(shù)據(jù)和存儲(chǔ)。事實(shí)上,我發(fā)現(xiàn)許許多多項(xiàng)目滿足于HTML scraping或使用老式的HTTP POST。這使得嘗試 Ajax 開發(fā)容易之極,可以重用任何現(xiàn)有的后端HTTP服務(wù),而不是轉(zhuǎn)向SOAP或REST/WOA等復(fù)雜的服務(wù)。雖然這大概會(huì)導(dǎo)致糟糕的架構(gòu)級(jí)的選擇,但這也使逐步轉(zhuǎn)化到Ajax 毫不費(fèi)力,簡(jiǎn)直自然之極,雖然因此造成的以后的頭痛大概是難以避免的。
3。Ajax比傳統(tǒng)Web設(shè)計(jì)和開發(fā)更棘手。HTML用戶界面規(guī)范的丟失,幾乎無(wú)限制的隱藏功能的可能性,編程手法創(chuàng)建頁(yè)面元素,以及Ajax 方式的其他固有的特性把我們所知的Web設(shè)計(jì)和開發(fā)方式都扔出門外去了。 Web 設(shè)計(jì)師必須深刻理解DOM,Javascript和CSS的能力,對(duì)瀏覽器如何顯示圖像,如何布局,以及顯示各種元素要有深刻理解。開發(fā)人員發(fā)現(xiàn)測(cè)試既困難又枯燥。雖然工具在不斷地,全面地改進(jìn),但要讓整個(gè)工業(yè)積累出行之有效的最佳實(shí)踐,模式和實(shí)用知識(shí),要花幾年時(shí)間呢。在此要高度贊揚(yáng)一下象雅虎的Bill Scott這樣的業(yè)界人士,贊賞他們通過(guò)推動(dòng)類似雅虎UI設(shè)計(jì)模式庫(kù)這樣的東西,嘗試解決這里提到的許多問(wèn)題,極大地推進(jìn)了業(yè)界的最高工藝水平。結(jié)論是,Ajax開發(fā),起碼是目前,與傳統(tǒng)的Web開發(fā)相比要花更多的時(shí)間,同時(shí)要求更高的技能。
4。Ajax 工具和組件仍在涌現(xiàn),現(xiàn)今還沒(méi)有明顯的領(lǐng)先者。雖然Dojo火爆出場(chǎng),但競(jìng)爭(zhēng)遠(yuǎn)未結(jié)束。譬如,Dojo框架本身的版本還是0.3 (注:Dojo 0.4已發(fā)行)。緊隨其后的種種工具,框架和組件庫(kù)還有很多。雖然OpenAjax 旨在使得眾多產(chǎn)品相互合作,大多數(shù)的開發(fā)人員只會(huì)掌握這其中的2-3個(gè),然后就一直用這幾個(gè)產(chǎn)品了。在目前的情形下,過(guò)早定死在某個(gè)特定的產(chǎn)品,一般來(lái)說(shuō)不是個(gè)好主意。創(chuàng)新,競(jìng)爭(zhēng),和市場(chǎng)的領(lǐng)先地位此起彼伏,尚無(wú)定數(shù)。同時(shí),一定要去看一下script.aculo.us,Prototype,Google Web Toolkit,Yahoo! UI Library, JackBe,Zapatec,Bindows, Nexaweb,General Interface,Backbase,ActiveWidgets,以及 微軟的Atlas。還有很多別的產(chǎn)品,我鼓動(dòng)你去看一下Max Kiesler對(duì)50個(gè)Ajax 框架的匯總簡(jiǎn)評(píng)。
5。優(yōu)秀的Ajax 程序員很是難找。Zimbra的Scott Dietzen最近感慨找到好的Ajax人才之難。但參考上述第3點(diǎn),建造復(fù)雜的Ajax 應(yīng)用要求的計(jì)算機(jī)技能要遠(yuǎn)比Web設(shè)計(jì)技能多得多。我發(fā)現(xiàn)有經(jīng)驗(yàn)的程序員不太喜歡Javascript編程和調(diào)試。這種情形不會(huì)持久,但也要過(guò)幾年才行。
6。必須積極地對(duì)付瀏覽器模型對(duì)Ajax的限制。雖然最后的結(jié)果會(huì)非常值得 ,但象任何技術(shù), Ajax遠(yuǎn)非完美,它也有幾個(gè)弱點(diǎn)。一個(gè)是它會(huì)違反現(xiàn)有的Web模型,譬如,加書簽,后退按鈕等等。幸運(yùn)的是, 象Brad Neuberg這樣的有識(shí)之士對(duì)此類問(wèn)題已有方案,只要你愿意花力氣,理解恢復(fù)此類功能的重要性。Ajax 也缺乏桌面軟件的的很多強(qiáng)處,譬如能離線運(yùn)行,訪問(wèn)本地硬盤存儲(chǔ)等,但Flash 的本地存儲(chǔ)和即將發(fā)行的Apollo平臺(tái)能應(yīng)付這類問(wèn)題。
7。Ajax 只是成功RIA策略的一個(gè)因素。我以前也寫過(guò),如果你想讓你的在線應(yīng)用實(shí)現(xiàn)范圍很廣的功能,那么你必須將類似Flex,OpenLaszlo, 以及WPF/E等這樣的RIA平臺(tái)放在考慮范圍之內(nèi),特別是在想支持象音像這樣豐富的媒體的情形下,而Ajax對(duì)此幾乎無(wú)能為力。Ajax 會(huì)日益對(duì)這些平臺(tái)造成威脅,特別是在后端服務(wù)器提供對(duì)服務(wù)器端push,Web 服務(wù),企業(yè)環(huán)境等支持的情形下。
聯(lián)系客服