DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> 聚光燈下的Ajax:Ajax技術概述
聚光燈下的Ajax:Ajax技術概述
編輯:AJAX基礎知識     

  Ajax技術是目前在浏覽器中通過JavaScript腳本可以使用的所有技術的集合。Ajax並沒有創造出某種具體的新技術,它所使用的大多數技術都是在很多年以前就已經存在了,然而Ajax以一種嶄新的方式來使用所有的這些技術,使得古老的B/S方式的Web開發煥發了新的活力,迎來了第二個春天。

  具體來說,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/)的一部分

  可以看出,除了XMLHttpRequest以外,所有的技術都是目前已經廣泛使用,得到了廣泛理解的基於Web標准的技術。而XMLHttpRequest雖然尚未被W3C采納,其實已經是一個事實上的標准了。幾乎所有主流的浏覽器,例如IE、Firefox、Netscape、Opera、Safari全部都支持這個技術。所以Ajax就是目前做Web開發最符合標准的技術。上述的所有技術都已經可以在浏覽器中使用,因此用戶不需要安裝任何額外的軟件(只需要有一個浏覽器,例如IE),就可以運行任何符合標准的Ajax應用。這對於Ajax技術的普及、降低Ajax應用部署和維護的成本是非常重要的。

  此外,隨著浏覽器的發展,更多的技術還會被添加進Ajax的技術體系之中。例如,目前Firefox浏覽器的最新版本已經可以直接支持矢量圖形格式SVG。Firefox已經可以支持JavaScript 2.0(對應ECMAScript 4.0規范)中的E4X(JavaScript的XML擴展)。Firefox、Opera、和Safari浏覽器還可以支持Canvas(也是Web Applications1.0規范的一部分),網上已經有人開發出了使用Canvas技術制作的3D射擊游戲的演示。但是因為這些技術目前還沒有得到市場占有率最高的IE浏覽器的支持,目前只能被應用在一些有限的場合(例如,在企業/機關內部,可以要求用戶只使用Firefox浏覽器)。

  在上述的這些Ajax的核心技術中,最核心的技術就是XMLHttpRequest。它最初的名稱叫做XMLHTTP,是微軟公司為了滿足Web開發者的需要,1999年在IE5.0浏覽器中率先推出的。後來這個技術被上述的規范命名為XMLHttpRequest。它正是Ajax技術所以與眾不同的地方。簡而言之,XMLHttpRequest為運行在浏覽器中的JavaScript腳本提供了一種在頁面之內與服務器通信的手段。頁面內的JavaScript可以在不刷新頁面的情況下從服務器獲取數據,或者向服務器提交數據。而在這個技術出現之前,浏覽器向服務器提交數據只能通過HTML表單的提交,從服務器獲取數據只能通過點擊一個超鏈接,這些操作一般都會帶來一次全頁面的刷新。

  XMLHttpRequest的出現為Web開發提供了一種全新的可能性,甚至整個改變了人們對於Web應用由什麼來組成的看法。在這個技術出現之前,由於技術上的限制,人們認為Web應用就是由一系列連續切換的頁面組成的。因此整個Web應用被劃分成了大量的頁面,其中大部分是一些很小的頁面。用戶大部分的交互都需要切換並且刷新整個頁面,而在這個過程中(下一個頁面完全顯示出來之前),用戶只能呆呆地等著,什麼事都做不了。這就是我們所習以為常的Web應用,在10年以前就是這個樣子。然而XMLHttpRequest技術的出現使得我們終於可以打破這種笨拙的開發模式,以一種全新的方式來做Web開發,為用戶提供更好的交互體驗。大量的探索者(自豪的說,也包括筆者在內)以XMLHttpRequest技術為基礎,將一些古老的Web技術重新包裝整合。經過了多年的不懈努力,終於在2005年開花結果。在這一年的2月,出現了一個新的術語Ajax,來描述這樣一類的技術和開發方式。

  與傳統的Web開發不同,Ajax並不是以一種基於靜態頁面的方式來看待Web應用的。從Ajax的角度看來,Web應用僅由少量的頁面組成,其中每個頁面其實是一個更小型的Ajax應用。而一些簡單的Ajax應用,例如一個簡單的RSS閱讀器,甚至只有一個頁面。每個頁面上面都包括有一些使用JavaScript開發的Ajax組件。這些組件使用XMLHttpRequest對象以異步的方式(就是不需要打斷用戶操作的後台方式)與服務器通信,從服務器獲取需要的數據後,使用DOM API來更新頁面中的一部分內容。因此Ajax應用與傳統的Web應用的區別主要在3個地方:

  •   1. 不刷新整個頁面,在頁面內與服務器通信。
  •   2. 使用異步方式與服務器通信,不需要打斷用戶的操作,具有更加迅速的的響應能力。
  •   3. 應用僅由少量頁面組成。大部分交互在頁面之內完成,不需要切換整個頁面。

  由此可見,Ajax使得Web應用更加動態,帶來了更高的智能,並且提供了表現能力豐富的Ajax UI組件。這樣一類新型的Web應用叫做RIA(Rich Internet Application)應用。除了Ajax,還包括有Flash等等技術。

  與1990年代末的DHTML相比,Ajax更加強調符合真正的Web標准的開發方式。Ajax對於現有的基於Web標准的技術的利用程度比DHTML高出了很多。而DHTML當初昙花一現,隨後聲名狼藉,最終徹底失敗的最大原因就在於其開發者大多不重視基於真正的Web標准來做開發。

  DHTML其實是浏覽器大戰的時代微軟和Netscape為了吸引眼球而制造的一個名詞,並沒有得到W3C的認可。並且經常被開發人員濫用,制造出一大堆不符合真正的Web標准的JavaScript腳本和HTML標記,常常只能運行在某種特定的浏覽器中(主要是IE)。DHTML總是過於注重各種花哨的視覺效果,而Ajax所最為關注的問題則是真正改善Web應用可用性,這正是Ajax技術誕生的使命,甚至也正是JavaScript腳本語言誕生的使命。

 

  跨浏覽器自然是Web應用可用性的重要組成部分,只有基於真正的Web標准來做開發,才有可能

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved