999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用AJAX技術(shù)提升Web應(yīng)用性能的設(shè)計(jì)

2014-11-12 06:04:32黃華峰黃華林
科技視界 2014年24期
關(guān)鍵詞:頁面用戶服務(wù)

黃華峰 黃華林

(1.廣州景聯(lián)信息科技有限公司,廣東 廣州 510520;2.廣東女子職業(yè)技術(shù)學(xué)院,廣東 廣州 511450)

AJAX,Asynchronous JavaScript and XML, 就是異步JavaScript及XML。AJAX并非一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。通過AJAX,設(shè)計(jì)人員可使用JavaScript的XMLHttpRequest對象來直接與服務(wù)器進(jìn)行通信。通過XMLHttpRequest對象,JavaScript可以在不重載頁面的情況下與Web服務(wù)器交換數(shù)據(jù)。

AJAX在瀏覽器與Web服務(wù)器之間使用異步方式傳輸數(shù)據(jù),可以只向服務(wù)器請求頁面中局部變化的數(shù)據(jù),獲得服務(wù)器返回的信息和數(shù)據(jù)后只做頁面的局部刷新,而不需要重載整個(gè)頁面,通信數(shù)據(jù)量大大減少,同時(shí)為用戶提供非常棒的Web體驗(yàn)。

AJAX是Web2.0時(shí)代的標(biāo)志性技術(shù),在AJAX中使用的Web標(biāo)準(zhǔn)已被良好定義,并被所有的主流瀏覽器支持。AJAX應(yīng)用程序獨(dú)立于瀏覽器和平臺(tái),已經(jīng)得到廣泛的應(yīng)用和支持。眾多非AJAX技術(shù)的傳統(tǒng)Web應(yīng)用也紛紛改造升級,投向AJAX陣營。

1 AJAX原理及流程

AJAX是異步JavaScript及XML,而JavaScript原本卻是一種單線程執(zhí)行的腳本語言。JavaScript的單線程表現(xiàn)在其任一函數(shù)都要從頭到尾逐句執(zhí)行完畢之后,才會(huì)執(zhí)行另一函數(shù),對于瀏覽器來說,也就是無法在渲染頁面的同時(shí)執(zhí)行代碼。這樣,界面的更新、鼠標(biāo)事件的響應(yīng)處理、setTimeout計(jì)時(shí)器、setInterval計(jì)時(shí)器等任務(wù)的執(zhí)行都要先排隊(duì),后依據(jù)隊(duì)列先后順序執(zhí)行。這樣一來,若有一段JavaScript代碼執(zhí)行時(shí)間比較長,那么在這段代碼執(zhí)行期間任何界面渲染都會(huì)被阻塞,界面事件處理也會(huì)停止響應(yīng)。AJAX技術(shù)采用了JavaScript的異步編程模式,能夠?qū)⒋a的運(yùn)行打散或者讓IO調(diào)用在后臺(tái)運(yùn)行,這樣能讓界面更新和其他事件處理能夠及時(shí)地進(jìn)行。

JavaScript的異步編程模式可以利用異步IO讓UI運(yùn)行更加流暢,比如AJAX通過 XMLHTTPRequest的異步通信獲取服務(wù)器數(shù)據(jù),在接收服務(wù)器回應(yīng)后再更新界面,在異步獲取數(shù)據(jù)的時(shí)候不會(huì)阻礙UI的更新。目前,在眾多HTML5設(shè)備API的設(shè)計(jì)中都充分采用了異步編程模式。

AJAX技術(shù)的核心之一是XMLHttpRequest對象,這是一種可以支持異步請求的技術(shù)。換句話來說,XMLHttpRequest可以將用戶信息以異步方式發(fā)送到服務(wù)器端,并接收服務(wù)器響應(yīng)信息和數(shù)據(jù)。XMLHttpRequest對象在大部分瀏覽器上已經(jīng)實(shí)現(xiàn)而且擁有一個(gè)簡單的接口允許數(shù)據(jù)從客戶端傳遞到服務(wù)端,且不會(huì)打斷用戶當(dāng)前的操作。使用XMLHttpRequest傳送的數(shù)據(jù)可以是任何格式,但以XML格式的數(shù)據(jù)為多。程序員可以使用XMLHttpRequest對象的open方法啟用一個(gè)AJAX調(diào)用向服務(wù)器發(fā)出請求,然后等待,得到服務(wù)器回應(yīng)時(shí),將在其onreadyStateChange事件響應(yīng)中指定的處理函數(shù)來處理服務(wù)器的回應(yīng)。

在建立Web應(yīng)用時(shí),AJAX為客戶端頁面的刷新提供很大的方便。例如,在投票系統(tǒng)中,AJAX技術(shù)可以對投票總數(shù)進(jìn)行及時(shí)更新,每次更新只需服務(wù)器端返回更新后的投票總數(shù)量數(shù)據(jù),僅刷新顯示投票總數(shù)的一個(gè)頁面元素,不需要重新載入整個(gè)頁面,傳輸?shù)臄?shù)據(jù)量大大減少,能顯著提升Web服務(wù)的性能。

2 AJAX的優(yōu)勢

2.1 AJAX技術(shù)可以在網(wǎng)頁內(nèi)部與服務(wù)器間達(dá)到通信的效果,減輕服務(wù)器的負(fù)擔(dān)。由于AJAX的根本理念是“按需取數(shù)據(jù)”,可以最大可能的減少了冗余請求和響影對服務(wù)器造成的負(fù)擔(dān),又可以做到無須刷新整個(gè)頁面就可以更新變化的部分,給用戶帶來流暢而友好的體驗(yàn)。

2.2 無需客戶端任何安裝,即可被絕大多數(shù)主流瀏覽器所支持;可以使數(shù)據(jù)和表現(xiàn)分離;平衡了前、后端的負(fù)載,原本數(shù)據(jù)大多由后端負(fù)責(zé)處理,借由AJAX讓客戶端分擔(dān)些工作,減低了后端的負(fù)載。

2.3 AJAX技術(shù)不僅可以保障Web應(yīng)用保留自己B/S結(jié)構(gòu)的優(yōu)點(diǎn),也具備C/S結(jié)構(gòu)應(yīng)用比較強(qiáng)大的功能和用戶感受。AJAX可以進(jìn)行實(shí)時(shí)數(shù)據(jù)驗(yàn)證,這使Web應(yīng)用程序更接近于桌面應(yīng)用程序。

3 利用AJAX技術(shù)提升Web應(yīng)用性能的設(shè)計(jì)

3.1 Web服務(wù)于AJAX技術(shù)相結(jié)合的應(yīng)用設(shè)計(jì)

一般情況下,Web服務(wù)網(wǎng)站應(yīng)用結(jié)構(gòu)如圖1所示。

圖1 未引入AJAX技術(shù)的Web服務(wù)應(yīng)用模型

圖2 引入AJAX技術(shù)的Web應(yīng)用模型圖

由圖1可以看出,整個(gè)網(wǎng)站有兩個(gè)比較明顯的特征。首先整個(gè)網(wǎng)站是由多個(gè)Web服務(wù)組合而成,其次所有的Web服務(wù)的訪問都是在服務(wù)器端展開。基于這種模式,Web服務(wù)對客戶端瀏覽器來講是一個(gè)完全透明的狀態(tài),瀏覽器不必清楚的知道Web的功能機(jī)位置,只要和服務(wù)器進(jìn)行交互即可。如此一來,整個(gè)網(wǎng)絡(luò)系統(tǒng)會(huì)出現(xiàn)瓶頸,因?yàn)閃eb服務(wù)對瀏覽器來說是透明的,此時(shí)服務(wù)器就要擔(dān)負(fù)起全部的輸入、輸出的計(jì)算工作,無法采用客戶端的計(jì)算機(jī)的計(jì)算能力。在Web服務(wù)網(wǎng)站系統(tǒng)的基礎(chǔ)上引入AJAX技術(shù)就可以有效改善上述瓶頸。引入AJAX技術(shù)之后的網(wǎng)站應(yīng)用模型如圖2所示。

由圖可知,在Web服務(wù)中引入AJAX技術(shù)之后,瀏覽器可以直接跟Web服務(wù)相交互,中間不用服務(wù)器端進(jìn)行中轉(zhuǎn),在一定程度上提升網(wǎng)絡(luò)帶寬的利用效率。且瀏覽器還可以采用JavaScript語言對Web服務(wù)返回?cái)?shù)據(jù)展開相應(yīng)的處理,縮減服務(wù)器端的計(jì)算量,提升系統(tǒng)的性能。

3.2 基于AJAX技術(shù)訪問Web服務(wù)的設(shè)計(jì)

3.2.1 Web訪問技術(shù)

在瀏覽器中可以采用不同的技術(shù)對Web服務(wù)進(jìn)行訪問。例如:微軟公司為Wiodows系統(tǒng)研發(fā)的Webservice行為組件,采用這些組件用戶可以之間在瀏覽器與服務(wù)器端進(jìn)行交互操作。但這些技術(shù)并沒有得到廣泛的應(yīng)用,首先這些技術(shù)是瀏覽器廠商自己開發(fā)的私有擴(kuò)展,沒有比較統(tǒng)一的標(biāo)準(zhǔn)無法大范圍推廣,其次是其不支持異步Web服務(wù)訪問,無法展開異步訪問會(huì)導(dǎo)致網(wǎng)頁加載的時(shí)間過長,用戶無法接受長時(shí)間的等待。引入AJAX技術(shù)可以有效改善上述情況,AJAX技術(shù)可以支持Windows、MacOS等這些主流操作系統(tǒng),也支持IE/firefox/Opear等眾多主流瀏覽器。

3.2.2 分析XMLHttpRequest對象訪問Web服務(wù)的方法

基于AJAX技術(shù)的Web服務(wù)訪問主要采用XMLHttpRequest對象來實(shí)現(xiàn),在IE以外的瀏覽器之中建立一個(gè)XMLHttpRequest對象比較容易,只需要下列代碼:

xmlHttp=new XMLHttpRequest();

在IE瀏覽器中建立XMLHttpRequest對象則離不開MSXML組件。首先可以在編寫代碼時(shí)采用新版本的MSXML6.0組件創(chuàng)建XMLHttpRequest對象,如果失敗則采用IE6.0自帶的MSXML3.0組件創(chuàng)建,如果再次失敗則嘗試運(yùn)用IE6.0以下的版本瀏覽器附帶MSXML組件,如果失敗就采用非IE瀏覽器支持的XMLHttpRequest()函數(shù)來創(chuàng)建XMLHttpRequest對象。如果依然失敗就可以拋出異常,說明用戶應(yīng)用的瀏覽器不支持AJAX功能。

3.3 AJAX技術(shù)進(jìn)行客戶端數(shù)據(jù)處理

3.3.1 處理XML文檔

在標(biāo)準(zhǔn)的AJAX程序中,瀏覽器與服務(wù)器進(jìn)行信息交換采用XML格式。XML在服務(wù)器端進(jìn)行處理時(shí)通常不會(huì)出現(xiàn)問題,主流平臺(tái)可以各自給出比較完善的SAX和DOM對象,這些對象也較多的第三方支持,可以依照需要選取。在瀏覽器進(jìn)行XML文檔處理時(shí)采用W3C XML DOM標(biāo)準(zhǔn)就可進(jìn)行,只是必須注意IE瀏覽器與個(gè)別瀏覽器創(chuàng)建DOM對象方法上的不同之處。以下的代碼是IE和個(gè)別瀏覽器創(chuàng)建DOM對象的方法。通常通過AJAX狀態(tài)值和狀態(tài)碼判斷訪問成功與否,再將服務(wù)器獲取的XML文檔httpRequest.responseText在瀏覽器中進(jìn)行解析。以下是一段樣例代碼:

3.3.2 處理JSON數(shù)據(jù)

JSON,JavaScript Object Notation,是一種簡單的數(shù)據(jù)格式,是JavaScript原生格式,比XML要輕巧得多,在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或工具包。JSON數(shù)據(jù)的訪問比XML訪問簡單很多,可以像訪問JavaScript對象一樣去訪問JSON數(shù)據(jù)。當(dāng)前,很多AJAX架構(gòu)使用JSON部分取代了XML,同時(shí)提升其JavaScript對象特性。JSON數(shù)據(jù)格式比較簡單,易于讀寫,易于解析,支持多種服務(wù)器端語言,已廣泛使用。例如,某次AJAX請求獲得服務(wù)器以JSON格式返回學(xué)生信息列表,想要對學(xué)生的信息進(jìn)行訪問,JavaScript樣例代碼片段如下:

4 結(jié)束語

在Web應(yīng)用系統(tǒng)的中引入AJAX技術(shù)可以提升Web應(yīng)用服務(wù)的性能,提升用戶體驗(yàn),增強(qiáng)系統(tǒng)的可靠性。本文以AJAX技術(shù)提升Web應(yīng)用的訪問性能為研究依據(jù),概述了AJAX技術(shù)的工作原理及優(yōu)勢,介紹了AJAX異步處理服務(wù)器回應(yīng)的方式以及提升Web應(yīng)用性能的一般方法。

[1]唐永瑞,張達(dá)敏.基于Ajax與MVC模式的信息系統(tǒng)的研究與設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014(2):128-131.

[2]呂國勇,史祥龍.基于嵌入式Linux和AJAX技術(shù)的Web異步交互設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2013,33(z1):247-251.

[3]陳瑞祥,季斌,王亞芳,等.基于AJAX的太陽能集熱工程遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2013(22):104-107.

[4]王宏偉,孫文磊,何麗,等.AJAX技術(shù)在Web零件庫系統(tǒng)中的應(yīng)用研究[J].制造業(yè)自動(dòng)化,2011,33(12):107-110.

[5]屈建明.基于AJAX技術(shù)的網(wǎng)絡(luò)應(yīng)用[J].信息通信,2013(6).

猜你喜歡
頁面用戶服務(wù)
大狗熊在睡覺
刷新生活的頁面
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
主站蜘蛛池模板: 欧美国产成人在线| 午夜色综合| 日本午夜在线视频| 欧美在线三级| 亚洲AV人人澡人人双人| a毛片免费观看| 天天综合网在线| 中国丰满人妻无码束缚啪啪| 国产小视频网站| 亚洲一区二区三区国产精华液| 精品国产一区91在线| 国产Av无码精品色午夜| 久久久久久久久18禁秘| aaa国产一级毛片| 国产精品入口麻豆| 欧美在线中文字幕| 国产一区二区三区免费观看| 欧美激情伊人| 久精品色妇丰满人妻| 国产99视频在线| 国产99热| 有专无码视频| 亚洲爱婷婷色69堂| 色一情一乱一伦一区二区三区小说| 国产婬乱a一级毛片多女| 青青青国产视频手机| a级毛片网| 成人91在线| 亚洲精品男人天堂| 欧美日本中文| 最新日韩AV网址在线观看| 中文无码毛片又爽又刺激| 老司机精品一区在线视频 | 亚洲欧洲日本在线| 亚洲第一黄片大全| 97色伦色在线综合视频| 精品久久国产综合精麻豆| 91免费观看视频| 亚洲码在线中文在线观看| 无码中文AⅤ在线观看| 四虎亚洲精品| 538国产视频| 欧美日韩国产高清一区二区三区| 国产区精品高清在线观看| 国产在线视频欧美亚综合| 亚洲经典在线中文字幕| 67194在线午夜亚洲| 精品无码国产一区二区三区AV| 国产成人精品高清在线| 波多野结衣的av一区二区三区| 伊人成人在线| 99久久人妻精品免费二区| 国产成人综合在线观看| 国产精品99在线观看| 欧美精品在线视频观看| 片在线无码观看| 伊人大杳蕉中文无码| 色综合激情网| 亚国产欧美在线人成| 色综合久久综合网| 国产激情无码一区二区免费| 91丝袜美腿高跟国产极品老师| 久久永久视频| 久久久久久久97| 中文字幕 91| 亚洲三级片在线看| 99久久精品国产精品亚洲| 国产一区二区三区精品欧美日韩| 亚洲午夜福利在线| 四虎亚洲精品| 亚洲最新在线| 看看一级毛片| 国产呦精品一区二区三区下载 | 精品小视频在线观看| 中国国产A一级毛片| 亚洲三级视频在线观看| 一本色道久久88综合日韩精品| 午夜激情福利视频| 1769国产精品视频免费观看| 五月婷婷丁香综合| 久久综合丝袜长腿丝袜| 亚洲,国产,日韩,综合一区|