ajax
基於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將資料放到網面上。