1.什麼是Ajax技術?
Ajax的全稱是:Asynchronous JavaScript + XML
2.Ajax的定義:
Ajax不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。
3.Ajax包括:
XHTML和CSS
使用文件物件模型(Document Object Model)作動態顯示和互動
使用XML和XSLT做資料互動和操作
使用XMLHttpRequest進行非同步資料接收
使用JavaScript將它們綁定在一起
Web開發領域的最新時髦術語其實質是“舊貌換新顏”。
Ajax(Asynchronous JavaScript and XML)是結合了Java技術、XML以及JavaScript等編程技術,可以讓開發人員構建基於Java技術的Web應用,並打破了使用頁面重載的慣例。
Ajax是使用用戶端指令碼與Web伺服器交換資料的Web應用開發方法。這樣,Web頁面不用打斷互動流程進行重新加裁,就可以動態地更新。使用Ajax,使用者可以建立接近本地案頭應用的直接、高可用、更豐富、更動態Web使用者介面。
非同步JavaScript和XML(AJAX)不是什麼新技術,而是指這樣一種方法:使用幾種現有技術——包括階層式樣式表(CSS)、JavaScript、XHTML、XML和可擴充樣式語言轉換(XSLT),開發外觀及操作類似案頭軟體的Web應用軟體。實現Ajax的所有組件都已存在了許多年。Adaptive Path的使用者體驗戰略部門主管兼創辦合伙人Jesse James Garrett今年2月發表在Adaptive Path網站上的一篇文章中杜撰了這個術語。
非同步這個詞是指AJAX應用軟體與主機伺服器進行聯絡的方式。如果使用舊模式,每當使用者執行某種操作、向伺服器請求獲得新資料,Web瀏覽器就會更新當前視窗。
如果使用AJAX的非同步模式,瀏覽器就不必等使用者請求操作,也不必更新整個視窗就可以顯示新擷取的資料。只要來回傳送採用XML格式的資料,在瀏覽器裡面啟動並執行JavaScript代碼就可以與伺服器進行聯絡。JavaScript代碼還可以把樣式表加到檢索到的資料上,然後在現有網頁的某個部分加以顯示。
在面向消費者的諸多應用當中,Google的Gmail和Google Maps就是最常見的例子。在Gmail當中,AJAX負責如何開啟線程會話,以顯示不同郵件的常值內容。而在Maps當中,AJAX允許使用者以一種似乎無縫的方式拖拉及滾動地圖。
還有雅虎的Flickr像片共用應用和亞馬遜網站的A9搜尋引擎。另外,雅虎新的Web郵件服務可能很快就會吸引AJAX支援者的莫大關注,這項服務基於雅虎收購Oddpost後得到的技術。
這些UI都充分地使用了後台通道,也被一些開發人員稱為“Web 2.0”,並導致了大家對Ajax應用興趣的猛漲。
然而,AJAX應用軟體廠商越來越把目光瞄準了企業。譬如說,Scalix的Web Access電子郵件應用軟體其實比微軟Outlook自己的Web郵件介面更像Outlook。
不過AJAX應用軟體的適用領域具有一定的局限性。因為它們利用了一些最新的Web技術,所以只能在某些Web瀏覽器裡面運行——不過AJAX適用的瀏覽器正越來越多。
Ajax
Ajax,非同步JavaScript與XML,是使用用戶端指令碼與Web伺服器交換資料的Web應用開發方法。這樣,Web頁面不用打斷互動流程進行重新加裁,就可以動態地更新。使用Ajax,你可以建立接近本地案頭應用的,直接的、高可用的、更豐富的、更動態Web使用者介面介面。
Ajax處理過程
一個Ajax互動從一個稱為XMLHttpRequest的JavaScript對象開始。如同名字所暗示的,它允許一個用戶端指令碼來執行HTTP請求,並且將會解析一個XML格式的伺服器響應。Ajax處理過程中的第一步是建立一個XMLHttpRequest執行個體。使用HTTP方法(GET或POST)來處理請求,並將目標URL設定到XMLHttpRequest對象上。
現在,記住Ajax如何首先處於非同步處理狀態?當你發送HTTP請求,你不希望瀏覽器掛起並等待伺服器的響應,取而代之的是,你希望通過頁面繼續響應使用者的介面互動,並在伺服器響應真正到達後處理它們。要完成它,你可以向XMLHttpRequest註冊一個回呼函數,並非同步地派發XMLHttpRequest請求。控制權馬上就被返回到瀏覽器,當伺服器響應到達時,回呼函數將會被調用。
在Java Web伺服器上,到達的請求與任何其它HttpServletRequest一樣。在解析請求參數後,servlet執行必需的應用邏輯,將響應序列化到XML中,並將它寫回HttpServletResponse。
一個Ajax互動從一個稱為XMLHttpRequest的JavaScript對象開始。如同名字所暗示的,它允許一個用戶端指令碼來執行HTTP請求,並且將會解析一個XML格式的伺服器響應。Ajax處理過程中的第一步是建立一個XMLHttpRequest執行個體。使用HTTP方法(GET或POST)來處理請求,並將目標URL設定到XMLHttpRequest對象上。
現在,記住Ajax如何首先處於非同步處理狀態?當你發送HTTP請求,你不希望瀏覽器掛起並等待伺服器的響應,取而代之的是,你希望通過頁面繼續響應使用者的介面互動,並在伺服器響應真正到達後處理它們。要完成它,你可以向XMLHttpRequest註冊一個回呼函數,並非同步地派發XMLHttpRequest請求。控制權馬上就被返回到瀏覽器,當伺服器響應到達時,回呼函數將會被調用。
在Java Web伺服器上,到達的請求與任何其它HttpServletRequest一樣。在解析請求參數後,servlet執行必需的應用邏輯,將響應序列化到XML中,並將它寫回HttpServletResponse。
一個Ajax互動從一個稱為XMLHttpRequest的JavaScript對象開始。如同名字所暗示的,它允許一個用戶端指令碼來執行HTTP請求,並且將會解析一個XML格式的伺服器響應。Ajax處理過程中的第一步是建立一個XMLHttpRequest執行個體。使用HTTP方法(GET或POST)來處理請求,並將目標URL設定到XMLHttpRequest對象上。
現在,記住Ajax如何首先處於非同步處理狀態?當你發送HTTP請求,你不希望瀏覽器掛起並等待伺服器的響應,取而代之的是,你希望通過頁面繼續響應使用者的介面互動,並在伺服器響應真正到達後處理它們。要完成它,你可以向XMLHttpRequest註冊一個回呼函數,並非同步地派發XMLHttpRequest請求。控制權馬上就被返回到瀏覽器,當伺服器響應到達時,回呼函數將會被調用。
在Java Web伺服器上,到達的請求與任何其它HttpServletRequest一樣。在解析請求參數後,servlet執行必需的應用邏輯,將響應序列化到XML中,並將它寫回HttpServletResponse。
Ajax的本質其實幾句話就講清楚了,什麼非同步,同步的,只是故弄玄虛,故意不想讓人聽懂。
http協議其實是一問一答的協議,你提一個請求,webserver給你一個網頁,但是這個網頁其實又分成兩部分,一部分是內容,另一部分是格式或者其他東西。過去,網頁設計的時候分不分這兩類,看你自己的習慣,但在AJAX模式下必須分,而且內容必須以xmlhttp的形式,用javascript去取。這樣內容的提取和格式的提取就分離了,網路的頻寬也就節省了。
這隻是開始,下面牽涉到UI的時候javascript就變得更複雜了。你可以叫它定時向伺服器發XMLHTTP請求,然後把返回的結果轉換成javascript的對象,再設計一個控制介面的javascript,能讓使用者一點菜單就調用這個對象,更新使用者介面。