註:本文參考《Ajax: A New Approach to Web Applications》,簡單地對 Ajax 進行描述介紹
Ajax 定義
這裡說的 AJAX 可不是荷蘭的阿賈克斯,而是 Asynchronous JavaScript + XML 的縮寫,它也不是單一技術,而是幾種技術的強有力組合。參考《Ajax: A New Approach to Web Applications》文中所說,Ajax 包括:
* XHTML 和 CSS 的標準表示; * 使用 DOM(Document Object Model)進行動態顯示及交互; * 使用 XML 和 XSLT 進行數據交換及相關操作; * 使用 XMLHttpRequest 進行異步數據查詢、檢索; * 使用 JavaScript 將所有的東西綁定在一起。
Ajax 能夠做什麼?
如今 Google Suggest 和 Google Maps 使用了 Ajax,通過 Ajax,我們可以使得客戶端得到豐富的應用體驗及交換操作,而用戶不會感覺到有網頁提交或刷新的過程,頁面也不需要被重新加載,應用的數據交換都被隱藏。
傳統的 WEB 應用程序模型是這樣工作的:用戶的界面操作觸發 HTTP 請求,服務器在接收到請求之後進行一些業務邏輯處理,如保存數據等,然後向客戶端返回一個 HTML 頁面。但這種方式並沒有給予用戶很好的應用體驗,當服務器在處理數據的時候,用戶則處於等待的狀態,每一步操作都需要等待,太多的等待會使用戶越來越沒有耐心。而 Ajax 則大不相同,它通過 Ajax 引擎,使得應用過程很自然,操作很流暢,因為其只和服務器交換有用的數據,而頁面顯示等不必要的數據則不再重新加載。Ajax 引擎其實就是 JavaScript、XML、XMLHttpRequest 等等各項技術的綜合應用。
--圖 1:傳統 WEB 應用模型(左)與 Ajax 應用模型(右)的對比
--圖 2:傳統 WEB 應用程序的同步交互模式(上)與 Ajax 應用程序的異步模式(下)的對比
當前都有誰在使用 Ajax
當前應用 Ajax 的已有不少網站,如:
* Orkut * Gmail * Google Groups * Google Suggest * Google Maps * Flickr 的部分特性 * Amazon 的 A9.com 搜索引擎部分
Ajax 應用前景
Ajax 的最大挑戰並不是技術,組成 Ajax 的各項技術已經相當成熟、穩定及易學,主要挑戰是如何使用 Ajax 設計應用程序,我們必須拋棄以往對於 WEB 侷限性的看法,開始開闊視野、開放思想、不斷創新,實現更加豐富的應用體驗。
Ajax 項目
目前我所瞭解到的與 Ajax 相關的項目如下:
* SAJAX - PHP * JPSpan - PHP * DWR (Direct Web Remoting) - Java * JSP (JavaScript Templates) - JavaScript
更多信息可參考 del.icio.us/popular/ajax。
AJAX經典文章
- Ajax內部交流文檔
- 簡單地對 Ajax 進行描述介紹
- http://www.adaptivepath.com/publications/essays/archives/000385.php
Ajax: A New Approach to Web Applications - http://jibbering.com/2002/4/httprequest.html
Using the XML HTTP Request object - http://developer.apple.com/internet/webcontent/xmlhttpreq.html
Dynamic HTML and XML: The XMLHttpRequest Object - http://del.icio.us/popular/ajax
del.icio.us / popular / ajax - http://www.fiftyfoureleven.com/resources/programming/xmlhttprequest/examples
XMLHttpRequest & Ajax Working Examples - http://www.xml.com/lpt/a/2005/02/09/xml-http-request.html
Very Dynamic Web Interfaces - http://www.standards-schmandards.com/index.php?2005/03/01/16-ajax-and-accessibility
AJAX and Accessibility
1 則留言