1 回答

TA貢獻1877條經驗 獲得超6個贊
傳統的 web 應用允許用戶填寫表單(form), 當提交表單時就向 web 服務器發送一個請求.服務器接收并處理傳來的表單,然后返回一個新的網頁.這個做法浪費了許多帶寬,因為在后兩個頁面中的大部分 HTML 代碼往往是相同的.由于每次應用的交互都需要向服務器發送請求, 應用的響應時間就依賴于服務器的響應時間. 這導致了用戶界面的響應比本地應用慢得多. 與此不同,AJAX 應用可以僅向服務器發送并取回必需的數據,它使用 SOAP 或其它一些基于 XML 的 web service 接口,并在客戶端采用 JavaScript 處理來自服務器的響應.因為在服務器和瀏覽器之間交換的數據大量減少, 結果我們就能看到響應更快的應用. 同時很多的處理工作可以在發出請求的客戶端機器上完成,所以 Web 服務器的處理時間也減少了. 使用 Ajax 的最大優點,就是能在不更新整個頁面的前提下維護數據.這使得 Web 應用程序更為迅捷地回應用戶動作,并避免了在網絡上發送那些沒有改變過的信息. Ajax 不需要
任何瀏覽器插件,但需要用戶允許 JavaScript 在瀏覽器上執行.就像 DHTML 應用程序那樣, Ajax 應用程序必須在眾多不同的瀏覽器和平臺上經過嚴格的測試. 隨著 Ajax 的成熟,一些簡化 Ajax 使用方法的程序庫也相繼問世.同樣,也出現了另一種輔助程序設計的技術,為那些不支持 JavaScript 的用戶提供替代功能.對應用 Ajax 最主要的批評就是,它可能破壞瀏覽器后退按鈕的正常行為.在動態更新頁面的情況下, 用戶無法回到前一個頁面狀態, 這是因為瀏覽器僅能記下歷史記錄中的靜態頁面. 一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差別非常微妙; 用戶通常都希望單擊后退按鈕,就能夠取消他們的前一次操作,但是在 Ajax 應用程序中,卻無法這樣做.不過開發者已想出了種種辦法來解決這個問題,當中大多數都是在用戶單擊后退按鈕訪問歷史記錄時,通過建立或使用一個隱藏的 IFRAME 來重現頁面上的變更 . ( 例如 , 當用戶在 Google Maps 中單擊后退時 , 它在一個隱藏的 IFRAME 中進行搜索,然后將搜索結果反映到 Ajax 元素上,以便將應用程序狀態恢復到當時的狀態. ) 一個相關的觀點認為,使用動態頁面更新使得用戶難于將某個特定的狀態保存到收藏夾中. 該問題的解決方案也已出現, 大部分都使用 URL 片斷標識符(通常被稱為錨點, URL 即中后面的部分)來保持跟蹤,允許用戶回到指定的某個應用程序狀態. (許多瀏覽器允許 JavaScript 動態更新錨點, 這使得 Ajax 應用程序能夠在更新顯示內容的同時更新錨點. 這些解決方案也同時解決了許多關于不支持后退按鈕的爭論. 進行 Ajax 開發時,網絡延遲—即用戶發出請求到服務器發出響應之間的間隔——需要慎重考慮.不給予用戶明確的回應,沒有恰當的預讀數據,或者對 XMLHttpRequest 的不恰當處理,都會使用戶感到延遲,這是用戶不想,也是他們無法理解的. 通常的解決方案是, 使用一個可視化的組件來告訴用戶系統正在進行后臺操作并且正在讀取數據和內容. 一些手持設備(如手機,PDA 等)現在還不能很好的支持 Ajax; 用 JavaScript 作的 Ajax 引擎,JavaScript 的兼容性和 DeBug 都是讓人頭痛的事; Ajax 的無刷新重載,由于頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾―― 用戶不太清楚現在的數據是新的還是已經更新過的;現有的解決有:在相關位置提示,數據更新的區域設計得比較明顯 , 數據更新后給用戶提示等 ; 對串流媒體的支持沒有 FLASH,JavaApple
- 1 回答
- 0 關注
- 1117 瀏覽
添加回答
舉報