AJAX全稱爲"Asynchronous JavaScript and XML"(異步JavaScript和XML),是指一種建立交互式網頁應用的網頁開發技術。程序員
主要包含了如下幾種技術:web
Ajax(Asynchronous JavaScript + XML)的定義編程
基於web標準(standards-based presentation)XHTML+CSS的表示;瀏覽器
使用 DOM(Document Object Model)進行動態顯示及交互;服務器
使用 XML 和 XSLT 進行數據交換及相關操做;網絡
使用 XMLHttpRequest進行異步數據查詢、檢索;異步
使用 JavaScript將全部的東西綁定在一塊兒。工具
相似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的"派生/合成"式(derivative/composite)的技術正在出現,如"AFLAX"。post
AJAX的應用使用支持以上技術的web瀏覽器做爲運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。可是Opera不支持XSL格式對象,也不支持XSLT。性能
1)不須要插件支持
Ajax不須要任何瀏覽器插件,就能夠被絕大多數主流瀏覽器所支持,用戶只須要容許Javascript在瀏覽器上執行便可。
2)優秀的用戶體驗
這是Ajax技術的最大優勢,能在不刷新整個頁面的前提下更新數據,這使得Web應用程序能更爲迅速地迴應用戶的操做。
3)提升Web程序的性能
與傳統模式相比,Ajax模式在性能上的最大區別就在於傳輸數據的方式,在傳統模式中,數據提交是經過表彰來實現的,而數據獲取是靠全頁面刷新來從新獲取整個頁面的內容。而Ajax模式只是經過XMLHttpRequest對象向服務器端提交但願提交的數據,即按需發送。
4)減輕服務器和帶寬的負擔
Ajax的工做原理至關於在用戶和服務器之間加了一箇中間層,使用戶操做與服務器響應異步化。它在客戶端建立Ajax引擎,把傳統方式下的一些服務器負擔工做轉移到客戶端,便於客戶端資源處理,減輕服務器和帶寬的負擔。
1)瀏覽器對XMLHttpRequest對象的支持度不足
Ajax的不足之一首先來自於瀏覽器。IE在5.0及之後的版本才支持XMLHttpRequest對象,Mozilla、Netscape等瀏覽器支持XMLHttpRequest則更在其後。爲了使得Ajax應用能在各個瀏覽器中正常運行,程序員必須花費大量的精力編碼以兼顧各個瀏覽器之間的差異,來讓Ajax應用可以很好地兼容各個瀏覽器。使得Ajax開發難度比普通的Web開發高出不少。許多程序員所以對Ajax望而生畏。
2)破壞瀏覽器前進、後退按鈕的正常功能
在傳統的網頁中,用戶常常會習慣性的使用瀏覽器自帶的前進、後退按鈕,然而Ajax改變了此Web瀏覽習慣。在Ajax中前進、後退按鈕的功能都會失效,雖然經過經過必定的方法(添加錨點)來使得用戶可使用前進、後退按鈕。但相對於傳統的方式卻麻煩了不少,對於大多數程序來講寧肯放棄前進、後退的功能,也不肯意在繁瑣的邏輯中去處理該問題。然而,對於用戶來講,他們常常會碰到這種狀況,當單擊一個按鈕觸發一個Ajax交互後以爲不想這樣作,接着就去習慣性的單擊後退按鈕,結果發生了最不肯意看到的結果,瀏覽器後退到了一個先前的一個頁面,經過Ajax交互獲得的內容徹底消失了。
3)對搜索引擎的支持的不足
對於搜索引擎的支持也是Ajax的一項缺憾。一般搜索引擎是經過爬蟲程序來對互聯網上的數以億計的海量數據來進行搜索整理的,然而爬蟲程序如今還不能理解那些奇怪的Javascript代碼和所以引發的頁面內容的變化,這使得應用Ajax的站點在網絡推廣上相對於傳統站點明顯處於劣勢。
4)開發和調試工具的缺少
JavaScript是Ajax的重要組成部分,在目前,因爲缺乏很好的JavaScript開發和調試工具,使不少Web開發者對JavaScript望而生畏,這對於編寫Ajax代碼就更加困難了。同時,目前許多Web開發者已經習慣使用可視化的工具,對親自動手編寫代碼有畏懼感,這也在必定程度上影響了你們對Ajax的應用。
每一項技術的產生和發現必有其須要產生的閏土,AJAX也不例外。
AJAX技術在1998年先後獲得了應用。容許客戶端腳本發送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。該組件原屬於微軟Exchange Server,而且迅速地成爲了Internet Explorer 4.0的一部分。部分觀察家認爲,Outlook Web Access是第一個應用了Ajax技術的成功的商業應用程序,併成爲包括Oddpost的網絡郵件產品在內的許多產品的領頭羊。2005年初,許多事件使得Ajax被大衆所接受。Google在它著名的交互應用程序中使用了異步通訊,如Google討論組、Google地圖、Google搜索建議、Gmail等。對Mozilla/Gecko的支持使得該技術走向成熟,變得更爲易用。
與其說AJAX是一種新的技術,不如說他是一種新的思想,他有着傳統網頁開發的特性,可是同時也解決了傳統網頁不斷刷新網頁的問題,把同步網頁開發編程異步。一張圖賽過千言萬說,下面是一張解釋圖:
AJAX在程序運行中與傳統網頁開發的區別
下面是AJAX與傳統網頁開發的異同:
從頁面端、用戶體驗和服務器單分析來看:
有不少使用 AJAX 的應用程序案例:新浪微博、Google 地圖、開心網等等。