主要包含了以下幾種技術
Ajax(Asynchronous JavaScript + XML)的定義
基於web標準(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)進行動態顯示及交互;
使用 XML 和 XSLT 進行數據交換及相關操作;
使用 XMLHttpRequest 進行異步數據查詢、檢索;
使用 JavaScript 將所有的東西綁定在壹起。英文參見Ajax的提出者Jesse James Garrett的原文。
類似於DHTML或LAMP,AJAX不是指壹種單壹的技術,而是有機地利用了壹系列相關的技術。事實上,壹些基於AJAX的“派生/合成”式(derivative/composite)的技術正在出現,如“AFLAX”。
AJAX的應用使用支持以上技術的web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。
與傳統的web應用比較
傳統的web應用允許用戶填寫表單(form),當提交表單時就向web服務器發送壹個請求。服務器接收並處理傳來的表單,然後返回壹個新的網頁。這個做法浪費了許多帶寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的。由於每次應用的交互都需要向服務器發送請求,應用的響應時間就依賴於服務器的響應時間。這導致了用戶界面的響應比本地應用慢得多。
與此不同,AJAX應用可以僅向服務器發送並取回必需的數據,它使用SOAP或其它壹些基於XML的web service接口,並在客戶端采用JavaScript處理來自服務器的響應。因為在服務器和瀏覽器之間交換的數據大量減少,結果我們就能看到響應更快的應用。同時很多的處理工作可以在發出請求的客戶端機器上完成,所以Web服務器的處理時間也減少了。
Ajax應用程序的優勢在於:
1. 通過異步模式,提升了用戶體驗
2. 優化了瀏覽器和服務器之間的傳輸,減少不必要的數據往返,減少了帶寬占用
3. Ajax引擎在客戶端運行,承擔了壹部分本來由服務器承擔的工作,從而減少了大用戶量下的服務器負載。
發展史
該技術在1998年前後得到了應用。允許客戶端腳本發送HTTP請求(XMLHTTP)的第壹個組件由Outlook Web Access小組寫成。該組件原屬於微軟Exchange Server,並且迅速地成為了Internet Explorer 4.0[3]的壹部分。部分觀察家認為,Outlook Web Access是第壹個應用了Ajax技術的成功的商業應用程序,並成為包括Oddpost的網絡郵件產品在內的許多產品的領頭羊。但是,2005年初,許多事件使得Ajax被大眾所接受。Google在它著名的交互應用程序中使用了異步通訊,如Google討論組、Google地圖、Google搜索建議、Gmail等。Ajax這個詞由《Ajax: A New Approach to Web Applications》壹文所創,該文的迅速流傳提高了人們使用該項技術的意識。另外,對Mozilla/Gecko的支持使得該技術走向成熟,變得更為易用。
優點和缺點
使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護數據。這使得Web應用程序更為迅捷地回應用戶動作,並避免了在網絡上發送那些沒有改變過的信息。
Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執行。就像DHTML應用程序那樣,Ajax應用程序必須在眾多不同的瀏覽器和平臺上經過嚴格的測試。隨著Ajax的成熟,壹些簡化Ajax使用方法的程序庫也相繼問世。同樣,也出現了另壹種輔助程序設計的技術,為那些不支持JavaScript的用戶提供替代功能。
對應用Ajax最主要的批評就是,它可能破壞瀏覽器後退按鈕的正常行為[4]。在動態更新頁面的情況下,用戶無法回到前壹個頁面狀態,這是因為瀏覽器僅能記下歷史記錄中的靜態頁面。壹個被完整讀入的頁面與壹個已經被動態修改過的頁面之間的差別非常微妙;用戶通常都希望單擊後退按鈕,就能夠取消他們的前壹次操作,但是在Ajax應用程序中,卻無法這樣做。不過開發者已想出了種種辦法來解決這個問題,當中大多數都是在用戶單擊後退按鈕訪問歷史記錄時,通過建立或使用壹個隱藏的IFRAME來重現頁面上的變更。(例如,當用戶在Google Maps中單擊後退時,它在壹個隱藏的IFRAME中進行搜索,然後將搜索結果反映到Ajax元素上,以便將應用程序狀態恢復到當時的狀態。)
壹個相關的觀點認為,使用動態頁面更新使得用戶難於將某個特定的狀態保存到收藏夾中。該問題的解決方案也已出現,大部分都使用URL片斷標識符(通常被稱為錨點,即URL中#後面的部分)來保持跟蹤,允許用戶回到指定的某個應用程序狀態。(許多瀏覽器允許JavaScript動態更新錨點,這使得Ajax應用程序能夠在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支持後退按鈕的爭論。
進行Ajax開發時,網絡延遲——即用戶發出請求到服務器發出響應之間的間隔——需要慎重考慮。不給予用戶明確的回應 [5],沒有恰當的預讀數據 [6],或者對XMLHttpRequest的不恰當處理[7],都會使用戶感到延遲,這是用戶不欲看到的,也是他們無法理解的[8]。通常的解決方案是,使用壹個可視化的組件來告訴用戶系統正在進行後臺操作並且正在讀取數據和內容。
壹些手持設備(如手機、PDA等)現在還不能很好的支持Ajax;
用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是讓人頭痛的事;
Ajax的無刷新重載,由於頁面的變化沒有刷新重載那麽明顯,所以容易給用戶帶來困擾――用戶不太清楚現在的數據是新的還是已經更新過的;現有的解決有:在相關位置提示、數據更新的區域設計得比較明顯、數據更新後給用戶提示等;
對串流媒體的支持沒有FLASH、Java Applet好;
ASP為ACTIVE SERVER PAGES的簡稱:
Active server pags (動態服務器主頁,簡稱ASP),內含於Internet Information
Server(IIS)當中,提供壹個服務器端(server-side)的scripting環境,讓妳產生和執行動態,交互式,高效率的站點服務器的應用程序。
妳不必擔心瀏覽器是否能執行妳設計出來的Active Server Pages,妳的站點服務器會自動將Active Server Pages 的程序碼,解釋為標準HTML格式的主頁內容,在送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的主頁內容。
Active Server Pages 的特點是:
壹:無須Compile編譯:容易產生,無須Compile 編譯或Link 鏈接即可執行。
二:使用常規文本編輯器,如Windows的記事本,即可設計。
三:與瀏覽器無關(Browser Independence):用戶端只要使用常規的可執行HTML瑪的瀏覽器,即可瀏覽Active Server Pages 所設計的主頁內容,
Script 語言(Vbscript ,Jscript)是在站點服務器(Server端)執行,用戶不需要執行這些Script語言。
四:面向對象(Object_Orient).
五: 可通過ActiveX Server components(ActiveX服務器組件)來擴充功能。
ActiveX Server component,可使用Visual Basic,Java,Visual C++,COBOL等語言來實現。
六:Active Server Pages與任何AcTiveX scripting 語言兼容。除了可使用VBscript 或JScript語言來設計,並可通過Plug-in的方式,使用由third party所提供的其他譬如REXX,perl,Tcl 等scripting語言。script引擎是處理script的COM(Component Object Model)對象。
七:Active server Pages的源程序代碼,不會傳到用戶的瀏覽器,因此可以保護辛辛苦苦寫出來的源程序不會外瀉。傳到用戶瀏覽器的是Active Server Pages執行的結果的常規HTML碼。
八:使用server端script產生client端script,妳可以使用ASP程序碼,在站點服務器執行script語言(VBscript 或 Jscript),來產生或更改在client端執行的script語言。