自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你真正的了解Ajax?Ajax技術(shù)簡(jiǎn)述

開(kāi)發(fā) 后端
Ajax的典型應(yīng)用除了Google Maps,還有微軟的Windows Live、Yahoo!的Flickr等等。此外國(guó)內(nèi)新浪的blog也使用了一些Ajax的技術(shù)。

Ajax技術(shù)是目前在瀏覽器中通過(guò)JavaScript腳本可以使用的所有技術(shù)的集合。Ajax并沒(méi)有創(chuàng)造出某種具體的新技術(shù),它所使用的大多數(shù)技術(shù)都是在很多年以前就已經(jīng)存在了,然而Ajax以一種嶄新的方式來(lái)使用所有的這些技術(shù),使得古老的B/S方式的Web開(kāi)發(fā)煥發(fā)了新的活力,迎來(lái)了第二個(gè)春天。

  具體來(lái)說(shuō),Ajax基于下列這些核心技術(shù):

  XHTML:對(duì)應(yīng)W3C的XHTML規(guī)范,目前是XHTML1.0。
CSS:對(duì)應(yīng)W3C的CSS規(guī)范,目前是CSS2.0。
DOM:這里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中。
JavaScript:對(duì)應(yīng)于ECMA的ECMAScript規(guī)范
XML:對(duì)應(yīng)W3C的XML DOM、XSLT、XPath等規(guī)范。
XMLHttpRequest:對(duì)應(yīng)WhatWG的Web Applications1.0規(guī)范(-apps/current-work/)的一部分

  可以看出,除了XMLHttpRequest以外,所有的技術(shù)都是目前已經(jīng)廣泛使用,得到了廣泛理解的基于Web標(biāo)準(zhǔn)的技術(shù)。而 XMLHttpRequest雖然尚未被W3C采納,其實(shí)已經(jīng)是一個(gè)事實(shí)上的標(biāo)準(zhǔn)了。幾乎所有主流的瀏覽器,例如IE、Firefox、 Netscape、Opera、Safari全部都支持這個(gè)技術(shù)。所以Ajax就是目前做Web開(kāi)發(fā)***標(biāo)準(zhǔn)的技術(shù)。上述的所有技術(shù)都已經(jīng)可以在瀏覽器 中使用,因此用戶不需要安裝任何額外的軟件(只需要有一個(gè)瀏覽器,例如IE),就可以運(yùn)行任何符合標(biāo)準(zhǔn)的Ajax應(yīng)用。這對(duì)于Ajax技術(shù)的普及、降低 Ajax應(yīng)用部署和維護(hù)的成本是非常重要的。

  此外,隨著瀏覽器的發(fā)展,更多的技術(shù)還會(huì)被添加進(jìn)Ajax的技術(shù)體系之中。例如,目前Firefox瀏覽器的***版本已經(jīng)可以直接支持矢量圖形格式 SVG。Firefox已經(jīng)可以支持JavaScript 2.0(對(duì)應(yīng)ECMAScript 4.0規(guī)范)中的E4X(JavaScript的XML擴(kuò)展)。Firefox、Opera、和Safari瀏覽器還可以支持Canvas(也是Web Applications1.0規(guī)范的一部分),網(wǎng)上已經(jīng)有人開(kāi)發(fā)出了使用Canvas技術(shù)制作的3D射擊游戲的演示。但是因?yàn)檫@些技術(shù)目前還沒(méi)有得到市 場(chǎng)占有率***的IE瀏覽器的支持,目前只能被應(yīng)用在一些有限的場(chǎng)合(例如,在企業(yè)/機(jī)關(guān)內(nèi)部,可以要求用戶只使用Firefox瀏覽器)。

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

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

  與傳統(tǒng)的Web開(kāi)發(fā)不同,Ajax并不是以一種基于靜態(tài)頁(yè)面的方式來(lái)看待Web應(yīng)用的。從Ajax的角度看來(lái),Web應(yīng)用僅由少量的頁(yè)面組成,其中每 個(gè)頁(yè)面其實(shí)是一個(gè)更小型的Ajax應(yīng)用。而一些簡(jiǎn)單的Ajax應(yīng)用,例如一個(gè)簡(jiǎn)單的RSS閱讀器,甚至只有一個(gè)頁(yè)面。每個(gè)頁(yè)面上面都包括有一些使用 JavaScript開(kāi)發(fā)的Ajax組件。這些組件使用XMLHttpRequest對(duì)象以異步的方式(就是不需要打斷用戶操作的后臺(tái)方式)與服務(wù)器通 信,從服務(wù)器獲取需要的數(shù)據(jù)后,使用DOM API來(lái)更新頁(yè)面中的一部分內(nèi)容。因此Ajax應(yīng)用與傳統(tǒng)的Web應(yīng)用的區(qū)別主要在3個(gè)地方:

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

  由此可見(jiàn),Ajax使得Web應(yīng)用更加動(dòng)態(tài),帶來(lái)了更高的智能,并且提供了表現(xiàn)能力豐富的Ajax UI組件。這樣一類新型的Web應(yīng)用叫做RIA(Rich Internet Application)應(yīng)用。除了Ajax,還包括有Flash等等技術(shù)。

  與1990年代末的DHTML相比,Ajax更加強(qiáng)調(diào)符合真正的Web標(biāo)準(zhǔn)的開(kāi)發(fā)方式。Ajax對(duì)于現(xiàn)有的基于Web標(biāo)準(zhǔn)的技術(shù)的利用程度比 DHTML高出了很多。而DHTML當(dāng)初曇花一現(xiàn),隨后聲名狼藉,最終徹底失敗的***原因就在于其開(kāi)發(fā)者大多不重視基于真正的Web標(biāo)準(zhǔn)來(lái)做開(kāi)發(fā)。

  DHTML其實(shí)是瀏覽器大戰(zhàn)的時(shí)代微軟和Netscape為了吸引眼球而制造的一個(gè)名詞,并沒(méi)有得到W3C的認(rèn)可。并且經(jīng)常被開(kāi)發(fā)人員濫用,制造出一 大堆不符合真正的Web標(biāo)準(zhǔn)的JavaScript腳本和HTML標(biāo)記,常常只能運(yùn)行在某種特定的瀏覽器中(主要是IE)。DHTML總是過(guò)于注重各種花 哨的視覺(jué)效果,而Ajax所最為關(guān)注的問(wèn)題則是真正改善Web應(yīng)用可用性,這正是Ajax技術(shù)誕生的使命,甚至也正是JavaScript腳本語(yǔ)言誕生的 使命。

  跨瀏覽器自然是Web應(yīng)用可用性的重要組成部分,只有基于真正的Web標(biāo)準(zhǔn)來(lái)做開(kāi)發(fā),才有可能跨瀏覽器為用戶提供一致的交互體驗(yàn)。而跨瀏覽器僅僅是基 于真正的Web標(biāo)準(zhǔn)做開(kāi)發(fā)的一個(gè)原因。另一個(gè)原因是,唯有這樣,才能建造出向后兼容的Web應(yīng)用。向后兼容的意思就是我們今天建造的Web應(yīng)用,當(dāng)明天用 戶都使用瀏覽器的新版本(例如IE 7.0)之后,不必做任何修改就能夠直接運(yùn)行在這些新版本上。這樣可以降低Web應(yīng)用的維護(hù)成本,并且對(duì)于改善可用性、使用戶獲得更好的交互體驗(yàn)也會(huì)很有 幫助。做過(guò)多年Web開(kāi)發(fā)的開(kāi)發(fā)者都知道,以前專門(mén)為IE 5.0開(kāi)發(fā)的Web應(yīng)用,不加以修改和重新測(cè)試就運(yùn)行在IE 6.0上是很困難的。在這里就是沒(méi)有做到向后兼容,Ajax技術(shù)會(huì)使得這些問(wèn)題都不再存在。此外,基于真正的Web標(biāo)準(zhǔn)做開(kāi)發(fā),才能充分地利用Web標(biāo)準(zhǔn) 發(fā)展的各項(xiàng)成果(例如上述的SVG、E4X等符合標(biāo)準(zhǔn)的技術(shù)),利用***進(jìn)的技術(shù)為用戶提供更好的交互體驗(yàn)。

  Ajax技術(shù)的背后有兩個(gè)推動(dòng)力:Web標(biāo)準(zhǔn)的成熟、軟件可用性和交互設(shè)計(jì)理論的成熟。在軟件的可用性方面,除了一些通用的可用性和交互設(shè)計(jì)理論之外 (這方面的經(jīng)典著作包括《About Face 2.0》中文版、《面向使用的軟件設(shè)計(jì)》等等),Web應(yīng)用的可用性(Web usability)也是國(guó)外非常熱門(mén)的一個(gè)研究領(lǐng)域,主要側(cè)重于研究如何提高Web網(wǎng)站的可用性。美國(guó)在這個(gè)領(lǐng)域有著非常深入的研究,并且對(duì)于一些公共 機(jī)構(gòu)網(wǎng)站的可用性還有相關(guān)的法律條款來(lái)約束(Section508,508條款,于2001年6月21日成為美國(guó)的法律,直接影響了聯(lián)邦部門(mén)和一些代理機(jī) 構(gòu),還有為他們服務(wù)的網(wǎng)頁(yè)設(shè)計(jì)師。這條法律也適用于政府投資項(xiàng)目和任何采用了該法律的州)。對(duì)于這些網(wǎng)站,如果無(wú)法達(dá)到條款上的一些可用性要求,網(wǎng)站經(jīng)營(yíng) 者就違法了。如果是開(kāi)發(fā)公司無(wú)法達(dá)到這些要求,就別指望從聯(lián)邦政府手中拿到這些項(xiàng)目。

  為了對(duì)如何提高Web應(yīng)用的可用性做出指導(dǎo),W3C在20世紀(jì)90年代建立了Web Accessibility Initiative(WAI),致力于為網(wǎng)站建造者提供實(shí)現(xiàn)可訪問(wèn)性(與可用性同義)的方法和策略()

  Web可用性方面的經(jīng)典著作包括《網(wǎng)站重構(gòu)》。

  綜上所述,可以認(rèn)為Ajax就是Web標(biāo)準(zhǔn)和Web應(yīng)用的可用性理論的集大成者。它極大地改善了Web應(yīng)用的可用性和用戶的交互體驗(yàn),最終得到了用戶和市場(chǎng)的廣泛認(rèn)可。所以可以說(shuō),Ajax就是用戶和市場(chǎng)的選擇。

  目前Ajax已經(jīng)成為了Web應(yīng)用的主流開(kāi)發(fā)技術(shù),大量的業(yè)界巨頭已經(jīng)采納并且在大力推動(dòng)這個(gè)技術(shù)的發(fā)展。最近的動(dòng)態(tài)包括:

  1. IBM、Oracle、Yahoo!、BEA、RedHat、Novell等頁(yè)界領(lǐng)先的公司啟動(dòng)了Open Ajax項(xiàng)目。致力于為Ajax開(kāi)發(fā)建造先進(jìn)強(qiáng)大的的開(kāi)發(fā)工具。

  IBM在2月底已經(jīng)發(fā)布了Open Ajax項(xiàng)目的Ajax Toolkit Framework(ATF)1.0,是一個(gè)基于Eclipse IDE的Ajax開(kāi)發(fā)工具。

  2. 微軟開(kāi)發(fā)了自己的Ajax框架Altas,不過(guò)主要是和服務(wù)器端他們自己的ASP.NET框架配合工作。

  3. Sun雖然行動(dòng)遲緩,但是也將Ajax技術(shù)列入了J2EE的blueprint(藍(lán)圖)中,作為J2EE技術(shù)的有益的補(bǔ)充。

  除了上述這些公司之外,Google公司不可不提,因?yàn)檎撬麄兟氏炔捎肁jax技術(shù)建造出了一大堆非常出色的應(yīng)用,才將Ajax技術(shù)引到了聚光燈下。Google公司建造的Ajax應(yīng)用包括Google Maps、GMail、Google Suggest等等,其中公認(rèn)***秀最復(fù)雜的Ajax應(yīng)用是Google Maps。由于完全基于Ajax技術(shù)來(lái)建造Google Maps的界面,Google Maps提供了遠(yuǎn)遠(yuǎn)超越其競(jìng)爭(zhēng)對(duì)手的地圖服務(wù)的交互體驗(yàn)。如果說(shuō)Google后臺(tái)的地圖技術(shù)并不存在巨大優(yōu)勢(shì)的話,那么Ajax技術(shù)和優(yōu)秀的交互設(shè)計(jì)成為了他們壓倒競(jìng)爭(zhēng)對(duì)手的***一根稻草。最終使得Google Maps脫穎而出,獲得了用戶的青睞。

  我們可以對(duì)比一下微軟前后的兩個(gè)地圖服務(wù)就可以看出差別。

  微軟公司所提供的舊的地圖服務(wù):。是傳統(tǒng)Web應(yīng)用的代表,性能很差而且極其難用。

  微軟公司所推出了新的地圖服務(wù):。新的地圖服務(wù)包括這個(gè)網(wǎng)站上的很多其他服務(wù)完全基于Ajax技術(shù)來(lái)建造,獲得了極好的可用性。這個(gè)新的地圖服務(wù)可以看作是在Google推出了Google Maps服務(wù)之后,微軟公司痛定思痛的產(chǎn)物,在很多地方模仿了Google Maps。

  Ajax的典型應(yīng)用除了Google Maps,還有微軟的Windows Live、Yahoo!的Flickr等等。此外國(guó)內(nèi)新浪的blog也使用了一些Ajax的技術(shù)。

責(zé)任編輯:王雪燕 來(lái)源: PHP1.CN
相關(guān)推薦

2012-12-18 13:28:55

IBMdW

2013-04-25 09:12:36

2023-06-26 08:24:23

JavaScriptAJAX

2016-02-26 14:49:24

AJAXWEB應(yīng)用技術(shù)

2009-06-26 13:20:50

JSF和Ajax

2009-06-15 16:29:42

JSONAJAX

2009-07-24 13:08:40

AJAX技術(shù)ASP.NET

2016-02-24 16:06:35

Ajax優(yōu)缺點(diǎn)

2009-11-24 14:22:03

基于PHP的AJAX技

2016-09-07 20:56:24

2020-11-09 09:59:50

Ajax技術(shù)

2009-09-18 09:37:11

AJAX CDN

2015-09-22 14:19:56

Cloud NativDevOps持續(xù)交付

2019-11-18 10:06:44

程序員CDN靜態(tài)資源

2010-05-24 09:47:32

AjaxAjax框架

2009-08-18 09:17:03

AJAX框架

2009-09-22 12:59:07

ibmdwWeb

2009-06-23 13:55:20

JavaFXRIA

2012-08-23 09:56:40

AJAX

2012-08-31 09:57:08

Ajaxajax開(kāi)發(fā)開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)