天天看點

AJAX技術基礎介紹

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

基于XML的異步JavaScript,簡稱AJAX,是目前Web創新(稱為Web2.0)中的一個王冠。感謝組成AJAX的各種技術,Web應用的互動如Flickr, Backpack和Google在這方面已經有質的飛躍。這個術語源自描述從基于網頁的Web應用到基于資料的應用的轉換。在基于資料的應用中,使用者需求的資料如聯系人清單,可以從獨立于實際網頁的服務端取得并且可以被動态地寫入網頁中,給緩慢的Web應用體驗着色使之像桌面應用一樣。

雖然大部分開發人員在過去使用過XMLHttp或者使用Iframe來加載資料,但僅到現在我們才看到傳統的開發人員和公司開始采用這些技術。就像新的程式設計語言或模型伴随着更多的痛苦,開發人員需要學習新的技巧及如何最好利用這些新技術。

AJAX模式

許多重要的技術和AJAX開發模式可以從現有的知識中擷取。例如,在一個發送請求到服務端的應用中,必須包含請求順序、優先級、逾時響應、錯誤處理及回調,其中許多元素已經在Web服務中包含了,就像現在的SOA。AJAX開發人員擁有一個完整的系統架構知識。同時,随着技術的成熟還會有許多地方需要改進,特别是UI部分的易用性。

AJAX開發與傳統的CS開發有很大的不同。這些不同引入了新的程式設計問題,最大的問題在于易用性。由于AJAX依賴浏覽器的JavaScript和XML,浏覽器的相容性和支援的标準也變得和JavaScript的運作時性能一樣重要了。這些問題中的大部分來源于浏覽器、伺服器和技術的組合,是以必須了解如何才能最好的使用這些技術。

綜合各種變化的技術和強耦合的客戶服務端環境,AJAX提出了一種新的開發方式。AJAX開發人員必須了解傳統的MVC架構,這限制了應用層次之間的邊界。同時,開發人員還需要考慮CS環境的外部和使用AJAX技術來重定型MVC邊界。最重要的是,AJAX開發人員必須禁止以頁面集合的方式來考慮Web應用而需要将其認為是單個頁面。一旦UI設計與服務架構之間的範圍被嚴格區分開來後,開發人員就需要更新和變化的技術集合了。

時刻想着使用者

AJAX的最大機遇在于使用者體驗。在使應用更快響應和創新的過程中,定義Web應用的規則正在被重寫;是以開發人員必須更注重使用者。現在使用者已經逐漸習慣如何使用Web應用了。例如使用者通常希望每一次按鈕點選會導緻幾秒的延遲和螢幕重新整理,但AJAX正在打破這種長時間的狀況。是以使用者需要重新體驗按鈕點選的響應了。

可用性是AJAX另人激動的地方而且已經産生了幾種新穎的技術。其中最引人注目的是一種稱為“黃色隐出”的技術,他在資料更新之前時将使用者界面變為黃色,更新完成後立刻恢複原來的顔色。AJAX開發人員将使用者從Web應用的負載中解放出來;小心地利用AJAX提供的豐富接口,不久桌面開發人員會發現AJAX是他們的方向。

幾種工具和技術

随着AJAX迅速地引人注目起來,我想開發人員對這種技術的期待也迅速地增加。就像任何新技術,AJAX的興旺也需要一整個開發工具/程式設計語言及相關技術系統來支撐。

JavaScript

如名字所示AJAX的概念中最重要而最被忽視的是他也是一種JavaScript程式設計語言。JavaScript是一種粘合劑使AJAX應用的各部分內建在一起。在大部分時間,JavaScript通常被服務端開發人員認為是一種企業級應用不需要使用的東西應該盡力避免。這種觀點來來自以前編寫JavaScript代碼的經曆:繁雜而又易出錯的語言。類似的,他也被認為将應用邏輯任意地散布在服務端和用戶端中,這使得問題很難被發現而且代碼很難重用。在AJAX中JavaScript主要被用來傳遞使用者界面上的資料到服務端并傳回結果。XMLHttpRequest對象用來響應通過HTTP傳遞的資料,一旦資料傳回到用戶端就可以立刻使用DOM将資料放到網面上。

XMLHttpRequest

XMLHttpRequest對象在大部分浏覽器上已經實作而且擁有一個簡單的接口允許資料從用戶端傳遞到服務端,但并不會打斷使用者目前的操作。使用XMLHttpRequest傳送的資料可以是任何格式,雖然從名字上建議是XML格式的資料。

開發人員應該已經熟悉了許多其他XML相關的技術。XPath可以通路XML文檔中的資料,但了解XML DOM是必須的。類似的,XSLT是最簡單而快速的從XML資料生成HTML或XML的方式。許多開發人員已經熟悉Xpath和XSLT,是以AJAX選擇XML作為資料交換格式有意義的。XSLT可以被用在用戶端和服務端,他能夠減少大量的用JavaScript編寫的應用邏輯。

CSS

為了正确的浏覽AJAX應用,CSS是一種AJAX開發人員所需要的重要武器。CSS提供了從内容中分離應用樣式和設計的機制。雖然CSS在AJAX應用中扮演至關重要的角色,但他也是建構建立跨浏覽器應用的一大阻礙,因為不同的浏覽器廠商支援各種不同的CSS級别。

伺服器端

但不像在用戶端,在服務端AJAX應用還是使用建立在如Java,.Net和PHP語言基礎上機制;并沒有改變這個領域中的主要方式。

既然如此,我們對Ruby o­n Rails架構的興趣也就迅速增加了。在一年多前,Ruby o­n Rails已經吸引了大量開發人員基于其強大功能來建構Web和AJAX應用。雖然目前還有很多快速應用開發工具存在,Ruby o­n Rails看起來已經儲備了簡化建構AJAX應用的能力。

開發工具

在實際建構AJAX應用中,你需要的不隻是文本編輯器。既然是JavaScript非編譯的,他可以容易地編寫和運作在浏覽器中;然而,許多工具提供了有用的擴充如文法高亮和智能完成。

不同的IDE提供了對JavaScript支援的不同等級。來自JetBrains的IntelliJ IDEA是一個用來JavaScript開發的更好的IDE,雖然許多開發人員也喜歡Microsoft’s Visual Studio産品(允諾會在最新的版本中改善對AJAX的支援)。Eclipse包含了兩個免費的JavaScript編輯器插件和一個商業的來自ActiveStat的Komodo IDE。

另一個JavaScript和AJAX開發中的問題是調試困難。不同的浏覽器提供不同的通常是隐藏的運作時錯誤資訊,而JavaScript的缺陷如雙重變量指派(通常是由于缺少資料類型)使得調試更加困難。在AJAX的開發中,調試就更複雜了,因為其需要辨別究竟是用戶端還是服務端産生的錯誤。在過去,JavaScript調試的方法是删除所有代碼然後一行行的增加直到錯誤出現。現在,更多開發人員回到為IE準備的Microsoft Script Debugger和為Mozilla浏覽器準備的Venkman。

浏覽器相容性

JavaScript程式設計的最大問題來自不同的浏覽器對各種技術和标準的支援。建構一個運作在不同浏覽器(如IE和火狐)是一個困難的任務。是以幾種AJAX JavaScript架構或者生成基于服務端邏輯或标記庫的JavaScript,或者提供符合跨浏覽器AJAX開發的用戶端JavaScript庫。一些流行的架構包括:AJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.

這些架構給開發人員更多的空間使得他們不需要擔心跨浏覽器的問題。雖然這些架構提升了開發人員建構應用的能力,但由于廠商已經開發了更細節的使用者界面的打包元件解決方案,是以在AJAX元件市場中需要考慮一些其他因素。例如提供通用使用者界面的元件如組合框和資料栅格的幾個廠商,都可以被用來在應用中建立良好的通過類似電子資料表方式來檢視和編輯資料的體驗。但這些元件不僅是封裝了元件的使用者界面而且包括與服務端資料的通訊方式,這些元件通常使用基于标記方式來實作如ASP.Net或JSF控件。

展望

最近IE和火狐之間的浏覽器之争變得火熱起來,是以AJAX開發人員需要足夠靈活的作出反應。關鍵點在一些問題如CSS或XML,雖然各種浏覽器形成采用最新标準的不同陣營(如Mozilla擁抱SVG和E4X标準及在最新火狐BETA版本中使用XUL,而微軟使用自己的XAML技術)。所有這些技術代表目前AJAX主流JavaScript和XML的市場方向改變。

總的來說,AJAX開發人員必須盡快地跟進最新的技術并利用高産的工具集。成功的AJAX開發人員還需要留心他們的使用者以避免将任何問題擴大化。并且AJAX開發人員還需要持續地創新來建立增強Web應用易用性的新方法。

本文轉自 netcorner 部落格園部落格,原文連結: http://www.cnblogs.com/netcorner/archive/2006/11/09/2912519.html ,如需轉載請自行聯系原作者

上一篇: SQL 通配符

繼續閱讀