ajax|web
目前,在供應商業應用方面,IT行業對Web系統的依賴程度越來越高。Web瀏覽器雖然一直是向遠端使用者提供軟體的一種理想的廉價方式,但它們並不能像案頭應用那樣提供豐富的用戶端功能。而通過AJAX(非同步JavaScript及XML)則可以實現豐富的用戶端互動能力和即時資料微量更新(micro-update),並且不需要使用任何一種私人的專用外掛程式。
AJAX是一種使用多數瀏覽器內建工具的Web開發技術,它包含三個組成部分,即用於計算的JavaScript(即ECMA Script)、用於表示的動態HTML和用於用戶端/伺服器通訊的XML HTTP。
AJAX的關鍵組件是XML HTTP。當它被下載至用戶端瀏覽器後,便可以迅速實現Web頁面與伺服器之間的通訊,而不用像傳統基於頁面的模型那樣,在進行用戶端與伺服器的資訊通訊時必須重新載入整個Web頁面。
這看起來雖然很簡單,但卻為Web應用開發人員開啟了一扇塵封已久的大門。除了瀏覽器內建的組件外,它不需要依賴其他的任何東西。由於有些企業特別關注使用者安裝軟體時可能產生的安全和後勤保障問題,而AJAX不需要向使用者發布任何軟體,因此也引起了這類企業的極大興趣。
傳統的Web應用架構(有時被稱為Postback模型)的效率是很低的,因為它浪費了大量的通訊頻寬。當使用者每次點擊超級連結時,都會出現一次Postback(即重新載入)整個Web頁面。而事實上,重新載入所有這些項目可能完全沒有必要,也許只需要從資料庫中調出很小的一段文本就能解決問題。
利用XML HTTP和JavaScript,開發人員可以通過非同步方式向伺服器請求一個區塊的資訊,而無需重新載入整個頁面。這樣就使Web應用能夠更快地對使用者的互動行為做出反應。
假設一位使用者可能需要通過網頁查看某位客戶的詳情。在傳統的Web應用中,這位使用者必須在點擊後等待網頁重新整理,只有在這一步完成之後,使用者才能看到客戶的詳細情況。但在AJAX模型中,使用者只需點擊客戶的姓名就可以立即從伺服器上檢索到客戶的資料,然後這些資料便會直接顯示在Web頁面上。
XML HTTP也可以解決傳統基於頁面的應用程式模型中存在的資料即時性問題。當包含某些資料的Web頁面被下載至瀏覽器後,這些資料將會被認為是過時的內容。瀏覽器根本不可能知道伺服器上的資料是否已經改變,或者是否仍然精確。如果當某項Web應用同時擁有多個使用者時,這個問題就顯得更加突出。而如果使用了AJAX,就可以在使用者使用資料之前對其進行檢查,避免上述問題的發生。
目前,所有主要的瀏覽器平台都支援AJAX,其中包括Internet Explorer、Mozilla FireFox、Netscape、Opera和Safari。還有很多開發工作都在努力實現XML HTTP的標準化。在去年,3W聯盟組建了一個Web API工作群組,專門從事HTTP功能(部分涉及AJAX)的規範開發工作。正是由於IT業界對AJAX的廣泛支援,該小組才會對規範的制訂工作如此重視。
通過執行有目標的資訊更新(或者稱為微量更新),就足以大幅度降低網路負載,並且可以與即時資料實現更快的互動與交流。我們可以通過計算總的傳輸位元組數、總下載時間和完成某一任務時每秒可以執行多少個步驟來計量這種方式帶來的好處。
AJAX的作用已經開始變得日益重要而且更加明顯,它在Google Map和Salesforce.com等重量級應用以及一些大型和小型企業中都已得到使用。它的快速增長表明企業構建未來Web應用的方式正在發生深刻地變革。