官术网_书友最值得收藏!

2.1 Ajax的基本知識

2.1.1 Ajax基本概念

現(xiàn)在,網(wǎng)絡(luò)已經(jīng)深入到人們工作和生活中的各個方面,例如新聞、通信、購物、交友等,網(wǎng)絡(luò)上豐富多彩的內(nèi)容,深深吸引著人們的眼球,甚至很多人都有網(wǎng)絡(luò)上癮癥的傾向,在一些青少年身上則表現(xiàn)得更重一些。但是在互聯(lián)網(wǎng)剛剛出現(xiàn)的時候,互聯(lián)網(wǎng)遠遠沒有現(xiàn)在這樣富有表現(xiàn)力,那還是最原始的HTML時代。那個時候,HTML是互聯(lián)網(wǎng)上的交互標準,它主要是用來顯示文字和圖片,用戶通過單擊超鏈接,從一個頁面導(dǎo)航到另一個頁面。這種簡單的發(fā)布模式和查看模式有助于促使互聯(lián)網(wǎng)迅速發(fā)展,最終形成今天這種全球互聯(lián)互通的局面。但是隨著用戶數(shù)量的增多,用戶對這種以頁面為中心的查看模式也提出了越來越多的要求,例如希望頁面像桌面應(yīng)用一樣富有交互性等,這些需求促使Web進一步發(fā)展,CGI、ASP、JSP等技術(shù)紛紛出現(xiàn),給用戶帶來了更多的交互性,但是這些技術(shù)并沒有很好地實現(xiàn)像桌面應(yīng)用一樣的Web應(yīng)用。

真正讓世界眼前一亮的是,Google的Google Maps、Google Suggest、Gmail等系列產(chǎn)品的出現(xiàn),這些應(yīng)用縮短了用戶同頁面的交互時間,使得Web應(yīng)用有著同桌面應(yīng)用一樣的體驗,這標志著Ajax技術(shù)的誕生。

Ajax是HTML瀏覽器上運行的一種表現(xiàn)方式和一系列技術(shù),它提高了頁面和用戶的交互性,在保留Web應(yīng)用在服務(wù)器端部署,用戶無須安裝客戶端優(yōu)勢的同時,提供了桌面應(yīng)用的風格和體驗,使得Ajax應(yīng)用迅速發(fā)展起來。以前的Web應(yīng)用,都是用戶與頁面交互后,頁面開始更新,用戶在頁面更新完成前只能等待;Ajax則使頁面局部更新,其他頁面內(nèi)容保持不變,這樣,Ajax促進了HTML從DHTML到RIA(Rich Internet Application,富網(wǎng)絡(luò)應(yīng)用)的轉(zhuǎn)變。

對于從事Web開發(fā)的專業(yè)人員而言,Ajax是很有吸引力的,它在保留了基礎(chǔ)應(yīng)用服務(wù)器端化的同時,使用戶獲得了桌面應(yīng)用的效果;用戶對使用這種技術(shù)的應(yīng)用也很有好感,因為它使得Web應(yīng)用更像一個桌面應(yīng)用程序,并且還添加了很多額外的功能。

關(guān)于Ajax說了這么多,那么到底什么是Ajax呢?Ajax是“Asynchronous JavaScript and XML”(異步JavaScript和XML)的縮寫,是一種使用客戶端腳本并能與Web服務(wù)器動態(tài)交互的客戶端Web開發(fā)技術(shù)。

具體而言,Ajax包含以下技術(shù):

■ 基于XHTML和CSS標準的表示;

■ 使用DOM(Document Object Model,文檔對象模型)進行動態(tài)顯示和交互;

■ 使用XMLHttpRequest與服務(wù)器進行異步通信;

■ 使用JavaScript綁定一切。

Ajax使用HTML和CSS標準化呈現(xiàn),使用DOM實現(xiàn)動態(tài)顯示和交互,使用XML和XSTL進行數(shù)據(jù)交換與處理,使用XMLHttpRequest對象(這個對象是瀏覽器提供的對象,下面將詳細討論)進行異步數(shù)據(jù)讀取,使用JavaScript綁定上面所有的東西。

因此,Ajax不是一個新的技術(shù),甚至Ajax中最為重要的XMLHttpRequest對象(簡稱XHR,下同),也早在1999年微軟發(fā)布IE 5的時候就出現(xiàn)了,因此說Ajax是“新瓶裝舊酒”。也就是Jesse James Garrett在2005年發(fā)表了一篇文章“Ajax: A New Approach to Web Applications”,對XHR對象及相關(guān)的XML和JavaScript進行了系列的闡述和包裝,才有了Ajax這個名稱的出現(xiàn)。

2.1.2 Ajax的基本特點

雖然Ajax不算新技術(shù),但是卻有其大行其道的理由,Ajax的主要特點如下。

2.1.2.1 持續(xù)、動態(tài)的用戶體驗

HTML應(yīng)用和Ajax應(yīng)用的主要區(qū)別在于,在用戶和應(yīng)用交互的同時,Ajax還可以與后臺的服務(wù)器進行通信。下面是兩種交互模式的區(qū)別。

圖2-1顯示了用戶在使用HTML時的主要行為,即典型的“點擊-等待-頁面刷新”模式。

圖2-1 “點擊-等待-頁面刷新”模式下的HTML體驗示意圖

而基于Ajax的應(yīng)用,用戶體驗如圖2-2所示,它會給用戶帶來一個比較平滑、持續(xù)的用戶體驗。Ajax通過Ajax引擎與后臺服務(wù)器交互,發(fā)送數(shù)據(jù)請求,而不是發(fā)送頁面請求,這樣就減少了頁面刷新的次數(shù),有效地減少了用戶的等待時間,帶給用戶最直接的體驗就是Ajax應(yīng)用在瀏覽器上是持久而平滑的。

圖2-2 “點擊-繼續(xù)點擊”模式下的Ajax體驗示意圖

2.1.2.2 桌面應(yīng)用風格的界面

Ajax應(yīng)用支持富用戶界面,在風格上更加貼近可安裝的桌面應(yīng)用。在Ajax中,典型的富用戶界面包括以下元素:

■ 標準的用戶界面控制元素(如按鈕、輸入框、下拉框等);

■ 高級用戶控制元素(如Tab框、日歷組件、樹組件和數(shù)據(jù)表格組件等);

■ 靈活、動態(tài)的布局容器。這些布局容器可以根據(jù)內(nèi)嵌內(nèi)容和窗體大小自動調(diào)節(jié)自身的布局大小;

■ 浮動的面板和模態(tài)對話框;

■ 動畫和各種動畫效果;

■ 剪切、粘貼及拖拽效果等。

2.1.2.3 網(wǎng)絡(luò)編程

Ajax的網(wǎng)絡(luò)編程能力,可以使Ajax應(yīng)用與Web服務(wù)器異步交換數(shù)據(jù)成為可能,并支持下一代合作性應(yīng)用。Ajax庫配合服務(wù)器端的能力,就可以實現(xiàn)異步向客戶端發(fā)送數(shù)據(jù)。

現(xiàn)在您應(yīng)該對什么是Ajax,以及Ajax能夠做什么有一個初步的了解了吧。下面的章節(jié)將詳細介紹有關(guān)Ajax的知識。

主站蜘蛛池模板: 米林县| 湟源县| 乌什县| 汝城县| 荥经县| 英超| 资中县| 古浪县| 陵川县| 陵水| 扶沟县| 汉中市| 珲春市| 清苑县| 望奎县| 合肥市| 阿城市| 南郑县| 汉沽区| 沂南县| 张家口市| 开封市| 永丰县| 蓬莱市| 阿合奇县| 德钦县| 军事| 杭锦旗| 南安市| 乡城县| 高邑县| 巢湖市| 博兴县| 仲巴县| 泸定县| 尚志市| 郎溪县| 昌都县| 沧源| 崇礼县| 永城市|