AJAX,最初是由Adaptive Path公司的Jesse James Garrett提出來的。AJAX的工作原理相當於在使用者和伺服器之間加了—個中介層,使使用者操作與伺服器響應非同步化。
Jesse 曾經說過:“AJAX並不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一在同共的協作中發揮各自的作用。”它包括:
l 使用XHTML和CSS標準化呈現
l DOM實現動態顯示和互動
l XML和XSLT進行資料交換與處理
l 用JavaScript綁定和處理所有資料
使用AJAX的優勢:
1. AJAX的根本理念是“按需取資料”,可以把以前的一些伺服器負擔的工作轉嫁到用戶端,利用用戶端閑置的處理能力來處理,從而減輕伺服器和頻寬的負擔,節約空間和頻寬租用成本。
2. 為了更好的使用者體驗,無重新整理更新頁面,減少使用者實際和心理等待時間,即使要讀取比較大的資料,也不會像重新整理一樣出現白屏的情況——AJAX是用XMLHTTP 發送請求得到服務端應答資料,在不重新載入整個頁面的情況下用Javascript 操作DOM最終更新頁面的,所以在讀取資料的過程中,相對時間比較短。
3. AJAX不需要外掛程式或下載小程式,基於標準化,被廣泛支援,其應用前景很廣泛,同時也利於日後維護和修改。最後,用AJAX調用外部資料很方便,需要頁面與資料分離的情況下,可以應用AJAX技術來擷取資料,從而達到分離目的。
AJAX的核心是JavaScript對象XmlHttpRequest。該對象是微軟在Internet Explorer 5中首次引入,它是一種支援非同步請求的技術。頁面內的JavaScript可以在不重新整理頁面的情況下從伺服器擷取資料,或者向伺服器提交資料。XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。XMLHttpRequest的出現為Web開發提供了一種全新的可能性。
在建立Web網站時,在用戶端執行螢幕更新為使用者提供了很大的靈活性。下面是使用AJAX可以完成的功能:
l 動態更新頁面的相關資料,而不需使用者點擊[重新整理] 按鈕
l 提升網站的效能,這是通過減少從伺服器下載的資料量而實現的
l 消除了每次使用者輸入時的頁面重新整理
l 直接編輯表格式資料,而不是要求使用者導航到新的頁面來編輯資料
圖 1 傳統WEB應用程式模型(左)與AJAX應用程式模型(右)的對比
圖 2 傳統WEB應用程式的同步互動模式(上)與AJAX應用程式的非同步模式(下)的對比
AJAX架構