Ajax 定義
這里說(shuō)的 AJAX 可不是荷蘭的阿賈克斯,而是 Asynchronous JavaScript + XML 的縮寫(xiě),它也不是單一技術(shù),而是幾種技術(shù)的強有力組合。參考《Ajax: A New Approach to Web Applications》文中所說(shuō),Ajax 包括:
* XHTML 和 CSS 的標準表示;* 使用 DOM(Document Object Model)進(jìn)行動(dòng)態(tài)顯示及交互;* 使用 XML 和 XSLT 進(jìn)行數據交換及相關(guān)操作;* 使用 XMLHttpRequest 進(jìn)行異步數據查詢(xún)、檢索;* 使用 JavaScript 將所有的東西綁定在一起。
Ajax 能夠做什么?
如今 Google Suggest 和 Google Maps 使用了 Ajax,通過(guò) Ajax,我們可以使得客戶(hù)端得到豐富的應用體驗及交換操作,而用戶(hù)不會(huì )感覺(jué)到有網(wǎng)頁(yè)提交或刷新的過(guò)程,頁(yè)面也不需要被重新加載,應用的數據交換都被隱藏。
傳統的 WEB 應用程序模型是這樣工作的:用戶(hù)的界面操作觸發(fā) HTTP 請求,服務(wù)器在接收到請求之后進(jìn)行一些業(yè)務(wù)邏輯處理,如保存數據等,然后向客戶(hù)端返回一個(gè) HTML 頁(yè)面。但這種方式并沒(méi)有給予用戶(hù)很好的應用體驗,當服務(wù)器在處理數據的時(shí)候,用戶(hù)則處于等待的狀態(tài),每一步操作都需要等待,太多的等待會(huì )使用戶(hù)越來(lái)越?jīng)]有耐心。而 Ajax 則大不相同,它通過(guò) Ajax 引擎,使得應用過(guò)程很自然,操作很流暢,因為其只和服務(wù)器交換有用的數據,而頁(yè)面顯示等不必要的數據則不再重新加載。Ajax 引擎其實(shí)就是 JavaScript、XML、XMLHttpRequest 等等各項技術(shù)的綜合應用。

--圖 1:傳統 WEB 應用模型(左)與 Ajax 應用模型(右)的對比

--圖 2:傳統 WEB 應用程序的同步交互模式(上)與 Ajax 應用程序的異步模式(下)的對比
當前都有誰(shuí)在使用 Ajax
當前應用 Ajax 的已有不少網(wǎng)站,如:
* Orkut* Gmail* Google Groups* Google Suggest* Google Maps* Flickr 的部分特性* Amazon 的 A9.com 搜索引擎部分
Ajax 應用前景
Ajax 的最大挑戰并不是技術(shù),組成 Ajax 的各項技術(shù)已經(jīng)相當成熟、穩定及易學(xué),主要挑戰是如何使用 Ajax 設計應用程序,我們必須拋棄以往對于 WEB 局限性的看法,開(kāi)始開(kāi)闊視野、開(kāi)放思想、不斷創(chuàng )新,實(shí)現更加豐富的應用體驗。
Ajax 項目
目前我所了解到的與 Ajax 相關(guān)的項目如下:
* SAJAX - PHP* JPSpan - PHP* DWR (Direct Web Remoting) - Java* JSP (JavaScript Templates) - JavaScript
更多信息可參考 del.icio.us/popular/ajax。

