2011年1月23日 星期日

AJAX

.Asynchronous JavaScript and XML (AJAX) 
   -- 是種創建互動網頁應用的網頁開發技術。
   -- 類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。

   -- 综合了「Javascript + DHTML + DOM + CSS + XMLHttp + XML」等「多位一體」的互動式網頁應用開發技術
   -- 除了「所思即所見」特色外,「AJAX」可以說是一種以「客戶為導向的網頁應用DIY開發程式」。


.主要的目的
   -- 提高網頁的互動性 (interactivity),速度 (speed),以及可用性(usability)。

.不是一項單獨的技術,它是由一堆現有的技術所組成,它的組成技術有:
   -- XHTML (或者 HTML) 加上 CSS 來作為資料的呈現。 
   -- 利用 DOM 以及 Javascript 來進行存取資料 (大多為 XML) 的處理。
   -- 利用 XMLHttpRequest 物件與遠端的 web server 進行非同步的資料交換。 

.使用AJAX的時機:
   -- 像Google Maps 的使用中,browser 與 web server 之間需要傳遞非常大量的圖形資料, 如果利用傳統的同步方式,在全部的圖形下載完成之前,我們沒辦法 對網頁進行操作,而使用者點選往左、往右的按鈕後,使用者又得等待另一次 的圖形傳遞。
   -- 反之,如果我們可以在使用者操作的時候,非同步的下載其它圖形呢? 這樣速度會變快,也不必一再的重複 reload 網頁。 (註:依據 IBM McLaughlin 的說法,這些可以動態出現不同內容的地方,經常是由
或者 所定義。) 當 AJAX engine 接收使用者全部或者部份的 form data 之後, AJAX engine 會跟 web server 連絡並由 web server 處理完成,並將完成的資料回傳給 AJAX engine,然後再由 AJAX engine 將成果動態的呈現在網頁上。這些過程,使用者完全不會 感受到,而且由於是非同步的,網頁不會停止接收使用者的操作。

與傳統的Web應用比較

   --  傳統的Web應用允許用戶端填寫表單(form),當送出表單時就向Web伺服器發送一個請求。伺服器接收並處理傳來的表單,然後送回一個新的網頁,但這個做法浪費了許多頻寬,因為在前後兩個頁面中的大部分HTML碼往往是相同的。由於每次應用的溝通都需要向伺服器發送請求,應用的回應時間就依賴於伺服器的回應時間。這導致了用戶界面的回應比本機應用慢得多。
   --  與此不同,AJAX應用可以僅向伺服器發送並取回必需的數據,它使用SOAP或 其它一些基於XML的頁面服務介面(介面), 並在客戶端採用JavaScript處理來自伺服器的回應。因為在伺服器和瀏覽器之間交換的數據大量減少(大約只有原來的5%),結果我們就能看到回應(伺服器回應)更快的應用(結果)。同時很多的處理工作可以在發出請求的客戶端機器上完成,所以Web伺服器的處理時間也減少了。

.Reference 1 2 3

沒有留言:

張貼留言