淺談AJAX 技術與優缺點

來源:互聯網
上載者:User
 

最近在學習有關 AJAX 的知識,上網查閱了一些有關 AJAX 的資料,主要是有關 AJAX的技術簡介及其優缺點等。在這裡,我想對我收集的資料做一些小小的總結,大部分資料都來自網上,本人在此只做分類總結,希望對和我一樣正在學習 AJAX 的朋友有一定的協助。 首先,我們先來瞭解一下AJAX 的基本概念 AJAX簡介AJAX代表了非同步JavaScript+XML。這種技術首先由微軟在1999年引入,並以"使用遠程調用的DHTML/JavaScript web應用程式"著稱。這一技術的基本思想是,允許一個互連網瀏覽器向一個遠程頁面/服務作非同步HTTP調用,並且用收到的結果更新一個當前web頁面而不必重新整理整個頁面。根據這種技術建立者的意見,這種技術應能夠改進用戶端的體驗-使得HTTP頁面外觀與使用感覺很類似於Windows傳統型應用程式。 Adaptive Path公司的Jesse James Garrett這樣定義Ajax:Ajax不是一種技術。實際上,它由幾種蓬勃發展的技術以新的強大方式組合而成。Ajax包含:
  • 基於XHTML和CSS標準的表示;
  • 使用Document Object Model進行動態顯示和互動;
  • 使用XMLHttpRequest與伺服器進行非同步通訊;
Ajax的工作原理
Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支援非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。
具體來說,Ajax基於以下的技術:
XHTML:對應W3C的XHTML規範,目前是XHTML1.0。
CSS:對應W3C的CSS規範,目前是CSS2.0
DOM:這裡的DOM主要是指HTML DOM,XML DOM包括在下面的XML中
JavaScript:對應於ECMA的ECMAScript規範
XML:對應W3C的XML DOM、XSLT、XPath等等規範
XMLHttpRequest:對應WhatWG的Web Applications1.0規範(http://whatwg.org/specs/web-apps/current-work/) 接下來,我們來瞭解一下 AJAX 的適用情境與不適用情境 Ajax適用情境
  1.表單驅動的互動
  2.深層次的樹的導航
  3.快速的使用者與使用者間的交流響應
  4.類似投票、yes/no等無關痛癢的情境
  5.對資料進行過濾和操縱相關資料的情境
  6.普通的文本輸入提示和自動完成的情境Ajax不適用情境
  1.部分簡單的表單
  2.搜尋
  3.基本的導航
  4.替換大量的文本
  5.對呈現的操縱 現在,我們來瞭解一下 AJAX 的優缺點 這大概是學習 AJAX 的人都比較關心的方面了,一種新的語言,其優缺點往往能決定其未來的命運,AJAX 做為一個新寵,它的優缺點必然是大家關注的焦點,不多說,下面我來總結一下從網上收集到的資料。 AJAX優點:1、最大的一點是頁面無重新整理,在頁面內與伺服器通訊,給使用者的體驗非常好。
2、使用非同步方式與伺服器通訊,不需要打斷使用者的操作,具有更加迅速的響應能力。3、可以把以前一些伺服器負擔的工作轉嫁到用戶端,利用用戶端閑置的能力來處理4、基於標準化的並被廣泛支援的技術,不需要下載外掛程式或者小程式。AJAX技術比刷頁方式節省頻寬的比例換算公式如下:
( 互動次數(刷頁互動流量 - AJAX互動量) - (AJAX版首次加增加量) ) / (刷頁*互動次數 + 首次載入頁面大小)
有一個國外對Ajax技術的實驗:Using AJAX to Improve the Bandwidth Performance of Web Applications 
①一個10k的頁面:AJAX技術,在互動中只重新整理網頁中部分需要更新資料2-3k,傳統的整頁重新整理模式需要整頁重載10k;
②互動次數越多,AJAX應用的頻寬節省效果越明顯;
③整頁重新整理模式雖然需要重新載入圖片等,Ajax則不用;
在此次條件的實驗過程中:ajax技術總計節省了超過61%。遠遠超過預期的50% 而且隨著互動次數增加,節省率還會更高。AJAX 的最大亮點大概就是頁面無重新整理了,使用非同步模式可以減少使用者等待,可以在畫面上實現更多的功能更便利的互動以改善客戶感受,在技術層面則可以帶來更靈活的應用結構組織方式。 AJAX缺點:1.缺少一個沒有標準之爭、沒有back和history的瀏覽器  Ajax取消了back按鈕,即對瀏覽器後退機制的破壞。後退按鈕是一個標準的web網站的重要功能,但是它沒法和js進行很好的合作,這是ajax所帶來的一個比較嚴重的問題。作為一個WEB的使用者,我們已經習慣了有 back按鈕,這幾乎是每個使用者共同的習慣,AJAX下點選連結是不Redirect頁面,所以不存在後退和前進了,同樣,沒有後退和前進也就無存找瀏覽曆史紀錄了。back和history存在的根本就是url的改變,在AJAX下人們發現不改url也同樣能達到內容改變這個酷酷的特點。用過Gmail的知道,Gmail下面採用的ajax技術解決了這個問題,在Gmail下面是可以後退的,但是,它也並不能改變ajax的機制,它只是採用的一個比較笨但是有效辦法,即使用者單擊後退按鈕訪問記錄時,通過建立或使用一個隱藏的IFRAME來重現頁面上的變更。但是,雖然說這個問題是可以解決的,但是它所帶來的開發成本是非常高的,和ajax架構所要求的快速開發是相背離的。這是ajax所帶來的一個非常嚴重的問題。 2.對搜尋引擎的支援不好 
3.安全問題ajax的邏輯可以對用戶端的安全掃描技術隱藏起來,允許駭客從遠端伺服器上建立新的攻擊。還有ajax也難以避免一些已知的安全弱點,諸如跨網站腳步攻擊、SQL注入攻擊和基於credentials的安全性漏洞等。 4.語言問題I)   編寫複雜、容易出錯 (javascript本是是個輕量級的小東西,現在被強迫重用起來,負擔可想而知)II)  冗餘代碼更多了 (層層包含js檔案是AJAX的通病,再加上以往的很多服務端代碼現在放到了用戶端)
III) 破壞了Web的原有標準  以上是我在收集 AJAX 方面知識的總結,可能還不是太全面,希望能給共同學習AJAX 的朋友一些協助.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.