- 企業(yè)級Web開發(fā)實戰(zhàn)
- 雨虹等編著
- 1728字
- 2018-12-27 14:19:37
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的知識。
- 零起步輕松學(xué)單片機技術(shù)(第2版)
- Introduction to DevOps with Kubernetes
- Google Cloud Platform Cookbook
- 基于LabWindows/CVI的虛擬儀器設(shè)計與應(yīng)用
- 基于LPC3250的嵌入式Linux系統(tǒng)開發(fā)
- 腦動力:PHP函數(shù)速查效率手冊
- 程序設(shè)計語言與編譯
- Matplotlib 3.0 Cookbook
- Mastering Machine Learning Algorithms
- 統(tǒng)計策略搜索強化學(xué)習(xí)方法及應(yīng)用
- 大數(shù)據(jù)驅(qū)動的機械裝備智能運維理論及應(yīng)用
- 基于企業(yè)網(wǎng)站的顧客感知服務(wù)質(zhì)量評價理論模型與實證研究
- Working with Linux:Quick Hacks for the Command Line
- INSTANT Puppet 3 Starter
- 基于ARM9的小型機器人制作