AJAX全稱為「Asynchronous JavaScript and XML」(非同步JavaScript和XML),是指一種創建互動式網頁應用的網頁開發技術。它有機地包含了以下幾種技術:
Ajax(Asynchronous JavaScript + XML)的定義
類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。
AJAX的應用使用支持以上技術的web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。[1]
傳統的web應用允許用戶填寫表單(form),當提交表單時就向web伺服器發送一個請求。伺服器接收並處理傳來的表單,然後返回一個新的網頁。這個做法浪費了許多頻寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的。由於每次應用的交互都需要向伺服器發送請求,應用的響應時間就依賴於伺服器的響應時間。這導致了用戶界面的響應比本地應用慢得多。
與此不同,AJAX應用可以僅向伺服器發送並取回必需的數據,它使用SOAP或其它一些基於XML的web service介面,併在客戶端採用JavaScript處理來自伺服器的響應。因為在伺服器和瀏覽器之間交換的數據大量減少,結果我們就能看到響應更快的應用。同時很多的處理工作可以在發出請求的客戶端機器上完成,所以Web伺服器的處理時間也減少了。
傳統web應用與AJAX應用的比較:處理用戶交互
傳統web應用與AJAX應用的比較:交互模式
該技術在1998年前後得到了應用。允許客戶端腳本發送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。該組件原屬於Microsoft 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的支持使得該技術走向成熟,變得更為易用。
使用Ajax的最大優點就是能在不刷新整個頁面的前提下維護數據。這使得Web應用程序更為迅捷地響應用戶交互,並避免了在網路上發送那些沒有改變的信息。
Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執行。就像DHTML應用程序那樣,Ajax應用程序必須在眾多不同的瀏覽器和平臺上經過嚴格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。同樣,也出現了另一種輔助程序設計的技術,為那些不支持JavaScript的用戶提供替代功能。
對應用Ajax最主要的批評就是,它可能破壞瀏覽器後退按鈕的正常行為(參見Jakob Nielsen's的《1999 Top-10 New Mistakes of Web Design》)。在動態更新頁面的情況下,用戶無法回到前一個頁面狀態,因為瀏覽器僅能記憶歷史記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差別非常微妙;用戶通常會希望單擊後退按鈕能夠取消他們的前一次操作,但是在Ajax應用程序中,這將無法實現。開發者們想出了種種辦法來解決這個問題,大多數都是在用戶單擊後退按鈕訪問歷史記錄時,通過創建或使用一個隱藏的IFRAME來重現頁面上的變更。(例如,當用戶在Google Maps中單擊後退時,它在一個隱藏的IFRAME中進行搜索,然後將搜索結果反映到Ajax元素上,以便將應用程序狀態恢復到當時的狀態。)
一個相關的觀點認為,使用動態頁面更新使得用戶難於將某個特定的狀態保存到收藏夾中。該問題的解決方案也已出現,大部分都使用URL片斷標識符(通常被稱為錨點,即URL中#後面的部分)來保持跟蹤,允許用戶回到指定的某個應用程序狀態。(許多瀏覽器允許JavaScript動態更新錨點,這使得Ajax應用程序能夠在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支持後退按鈕的爭論。
進行Ajax開發時,網路延遲——即用戶發出請求到伺服器發出響應之間的間隔——需要慎重考慮。不給予用戶明確的回應[3],沒有恰當的預讀數據[4],或者對XMLHttpRequest的不恰當處理[5],都會使用戶感到延遲,這是用戶不希望看到的,也是他們無法理解的。[6]通常的解決方案是,使用一個可視化的組件來告訴用戶系統正在進行後臺操作並且正在讀取數據和內容。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3158308
[2005-09-08 00:00:00.0] Ajax
[2005-10-04 16:24:56.0] what's AJAX
[2005-09-21 00:00:00.0] Ajax roundtrip
[2005-08-08 00:00:00.0] 学习AJAX
[2005-09-08 00:00:00.0] 错误和AJAX
|
- 评论人:lideyong
2005-10-11 16:43:48
|
|||
sdafsad |
||||