基於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將數據放到網面上。