什麼是Ajax技術?
AJAX全稱為“Asynchronous JavaScript and XML”(非同步JavaScript和XML),是指一種建立互動式網頁應用的網頁開發技術。它有機地包含了以下幾種技術:
基於web標準(standards-based presentation)XHTML+CSS的表示;使用 DOM(Document Object Model)進行動態顯示及互動;使用 XML 和 XSLT 進行資料交換及相關操作;使用 XMLHttpRequest 進行非同步資料查詢、檢索;使用 JavaScript 將所有的東西綁定在一起。類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的“派生/合成”式(derivative/composite)的技術正在出現,如“AFLAX”。AJAX的應用使用支援以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支援XSL格式對象,也不支援XSLT。
基於Ajax的應用程式架構 瀏覽器端架構被劃分成兩大類:•應用程式架構:提供瀏覽器的功能,但是常以包括視窗小組件抽象和另外的組件而出名,其功能主要圍繞案頭GUI架構。•基本結構架構:提供基本的管道和可移植的瀏覽器抽象,讓開發人員去建立內容。
Ajax的應用範圍
Ajax
適用情境1.表單驅動的互動傳統的表單提交,在文字框輸入內容後,點擊按鈕,幕後處理完畢後,頁面重新整理,再回頭檢查是否重新整理結果正確。使用Ajax,在點擊sunmit按鈕後,立刻進行非同步處理,並在頁面上快速顯示了更新後的結果,這裡沒有整個頁面重新整理的問題。2.深層次的樹的導航深層次的串聯功能表(樹)的遍曆是一項非常複雜的任務,使用JavaScript來控制顯示邏輯,使用Ajax消極式載入更深層次的資料可以有效減輕伺服器的負擔。3.快速的使用者與使用者間的交流響應在眾多人蔘與的交流討論的情境下,最不爽的事情就是讓使用者一遍又一遍重新整理頁面以便知道是否有新的討論出現。新的回複應該以最快的速度顯示出來,而把使用者從分神的重新整理中解脫出來,Ajax是最好的選擇。4.類似投票、yes/no等無關痛癢的情境對於類似這樣的情境中,如果提交過程需要達到40秒,很多的使用者就會直接忽略過去而不會參與,但是Ajax可以把時間控制在1秒之內,從而更多的使用者會加入進來。5.對資料進行過濾和操縱相關資料的情境對資料使用過濾器,按照時間排序,或者按照時間和名稱排序,開關過濾器等等。任何要求具備很高互動性資料操縱的場合都應該用JavaScript,而不是用一系列的伺服器請求來完成。在每次資料更新後,再對其進行尋找和處理需要耗費較多的時間,而Ajax可以加速這個過程。6.普通的文本輸入提示和自動完成的情境在文字框等輸入表單中給予輸入提示,或者自動完成,可以有效改善使用者體驗,尤其是那些自動完成的資料可能來自於伺服器端的場合,Ajax是很好的選擇。
Ajax
不適用情境1.部分簡單的表單雖然表單提交可以從Ajax擷取最大的益處,但一個簡單的評論表單極少能從Ajax得到什麼明顯的改善。而一些較少用到的表單提交,Ajax則幫不上什麼忙。2.搜尋有些使用了Ajax的搜尋引擎如Start.com和Live.com不允許使用瀏覽器的後退按鈕來查看前一次搜尋的結果,這對已經養成搜尋習慣的使用者來說是不可原諒的。3.基本的導航使用Ajax來做網站內的導航是一個壞主意,為什麼不把時間放在讓系統程式作的更好上呢?4.替換大量的文本使用Ajax可以實現頁面的局部重新整理,但是如果頁面的每個部分都改變了,為什麼不重新做一次伺服器請求呢?5.對呈現的操縱Ajax看起來像是一個純粹的UI技術,但事實上它不是。它實際上是一個資料同步、操縱和傳輸的技術。對於可維護的乾淨的web應用,不使用Ajax來控制頁面呈現是一個不錯的主意。JavaScript可以很簡單的處理XHMTL/HTML/DOM,使用CSS規則就可以很好的表達資料顯示。 參考文章:http://www.javaeye.com/topic/38793