2015年6月6日 星期六

AJAX

AJAX即「Asynchronous JavaScript and XML」(非同步的JavaScript與XML技術),指的是一套綜合了多項技術的瀏覽器端網頁開發技術。Ajax的概念由傑西·詹姆士·賈瑞特所提出。

傳統的Web應用允許用戶端填寫表單(form),當送出表單時就向Web伺服器傳送一個請求。伺服器接收並處理傳來的表單,然後送回一個新的網頁,但這個做法浪費了許多頻寬,因為在前後兩個頁面中的大部分HTML碼往往是相同的。由於每次應用的溝通都需要向伺服器傳送請求,應用的回應時間依賴於伺服器的回應時間。這導致了使用者介面的回應比本機應用慢得多。

與此不同,AJAX應用可以僅向伺服器傳送並取回必須的資料,並在客戶端採用JavaScript處理來自伺服器的回應。因為在伺服器和瀏覽器之間交換的資料大量減少(大約只有原來的5%)[來源請求],伺服器回應更快了。同時,很多的處理工作可以在發出請求的客戶端機器上完成,因此Web伺服器的負荷也減少了。

類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。雖然其名稱包含XML,但實際上資料格式可以由JSON代替,進一步減少資料量,形成所謂的AJAJ。而客戶端與伺服器也並不需要非同步。一些基於AJAX的「衍生/合成」式(derivative/composite)的技術也正在出現,如AFLAX。

上個世紀90年代,幾乎所有的網站都由HTML頁面實作,伺服器處理每一個用戶請求都需要重新載入網頁。這樣的處理方式效率不高。用戶的體驗是所有頁面都會消失,再重新載入,即使只是一部分頁面元素改變也要重新載入整個頁面,不僅要重新整理改變的部分,連沒有變化的部分也要重新整理。這會加重伺服器的負擔。

這可以用非同步載入來解決。1995年,JAVA語言的第一版發行,隨之發行的的Java applets(JAVA小程式)首次實作了非同步載入。瀏覽器通過執行嵌入網頁中的Java applets與伺服器交換資料,不必重新整理網頁。1996年,Internet Explorer將iframe元素加入到HTML,支援局部重新整理網頁。

1998年前後,Outlook Web Access小組寫成了允許客戶端指令碼傳送HTTP請求(XMLHTTP)的第一個元件。該元件原屬於微軟Exchange Server,並且迅速地成為了Internet Explorer 4.0[2]的一部分。部分觀察家認為,Outlook Web Access是第一個應用了Ajax技術的成功的商業應用程式,並成為包括Oddpost的網路信件產品在內的許多產品的領頭羊。但是,2005年初,許多事件使得Ajax被大眾所接受。Google在它著名的互動應用程式中使用了非同步通訊,如Google討論組、Google地圖、Google搜尋建議、Gmail等。Ajax這個詞由《Ajax: A New Approach to Web Applications》一文所創,該文的迅速流傳提高了人們使用該項技術的意識。另外,對Mozilla/Gecko的支援使得該技術走向成熟,變得更為簡單易用。

沒有留言:

張貼留言