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