論文簡介
第36卷第7期計算機(jī)工程2010年4月VoL36Computer EngineeringApril 2010●軟件技術(shù)與數(shù)據(jù)庫●文章編號: 1000- -3428(2010)07- 0052- 03文獻(xiàn)標(biāo)識碼: A中團(tuán)分類號: TP311.52Ajax技術(shù)的數(shù)據(jù)響應(yīng)優(yōu)化譚力,楊宗源,謝瑾奎(華東師范大學(xué)計算機(jī)科學(xué)技術(shù)系,上海200241)摘要: 對Ajax工作原理和數(shù)據(jù)傳輸性能進(jìn)行分析,從響應(yīng)數(shù)據(jù)的返回格式角度入手,通過實(shí)驗,對比2種數(shù)據(jù)格式XML和JSON的差異與優(yōu)劣,基于實(shí)際應(yīng)用場最,給出權(quán)衡取舍的建議,總結(jié)出效率和安全性更高的Ajax模型,改善了目前Ajax帶來的數(shù)據(jù)響應(yīng)冗余的缺陷。關(guān)鍵詞: Ajax 技術(shù);數(shù)據(jù)晌應(yīng); XML 傳輸格式; JISON 傳輸格式Data Response Optimization of AjaxTAN Li, YANG Zong-yuan, XIE Jin-kui(Department of Computer Science and Technology, East China Normal University, Shanghai 200241)[Abstract] This paper analyzes the work principle and data tansmission performance of Ajax, and dscusses the dference between XML andJSON by experiments with a focus on the format of response data retumed. Some suggestions to choose either based on the current aplicationscenarios are given, an optimized model of Ajax which is more eficient and secure is summarized, which improves the shortcomings such as dataresponse redundancy caused by Ajax nowadays.[Key words] Ajax; data response; XML rasmission format; JSON tasnmission format1概述回響應(yīng)數(shù)據(jù)并解析時,需要額外的XML或文本中間數(shù)據(jù)解作為多項傳統(tǒng)技術(shù)的優(yōu)勢整合,Ajax 以其各技術(shù)分支所析過程,存在著一定的效率低下問題,這會影響該Web應(yīng)用體現(xiàn)出的綜合優(yōu)勢提供著較好的用戶體驗,因此,獲得了廣程序的整體性能。闞的Web應(yīng)用市場。Ajax綜合使用了JavaScript, XHTML,HTPCSS, DOM, XML, XSTL以及XMLHttpRequest等技術(shù),集上述各技術(shù)的優(yōu)缺點(diǎn)于一身。當(dāng)運(yùn)用Ajax技術(shù)來開發(fā)一個健壯ix界服務(wù)器的軟件系統(tǒng)時,需要考慮Ajax 的可移植性、效用性和可用性等非功能性因素。而在Ajax與服務(wù)器異步交互的過程中如何HTML+CSSXML數(shù)據(jù)高效地傳遞響應(yīng)數(shù)據(jù)則是很重要的一個環(huán)節(jié)。本文從Ajax的崗覺器客戶端服務(wù)器璃數(shù)據(jù)響應(yīng)角度進(jìn)行分析,探討如何趨利避害,構(gòu)建一個高效圜2甚于Ajax的Web應(yīng)用模式(異步交互方式)的Ajax應(yīng)用程序,提出了一個整體優(yōu)化方案。目前,國內(nèi)關(guān)于Ajax性能優(yōu)化已有的研究主要包括:對2 Ajax 性能優(yōu)化分析及研究進(jìn)展基于Ajax的MVC模式進(jìn)行改造,借鑒Ajax和DataWindow在Ajax廣泛應(yīng)用的今天,提高Ajax應(yīng)用程序的執(zhí)行效技術(shù)創(chuàng)建和實(shí)現(xiàn)較高交互性能的B/S應(yīng)用2,提出一種基于率已成為首要問題。要對Ajax的性能實(shí)施優(yōu)化,首先要考慮JSON的對象序列化算法,通過分析JSON文法并建立對象導(dǎo)的是Ajax的基本工作原理。Ajax 采用異步交互方式,在用航圖,來解決解析XML所造成的缺陷,對Ajax的首頁加載戶與服務(wù)器之間引入了一個用JavaScript編寫的Ajax引擎,模式進(jìn)行改進(jìn)等。但是,這些研究只是針對XML或JSON來代替用戶與服務(wù)器進(jìn)行交互這樣用戶可以無需等待響應(yīng),各自的缺陷進(jìn)行改進(jìn),當(dāng)程序員面對一個Ajax實(shí)際開發(fā)場景繼續(xù)其他的Web交互。傳統(tǒng)的Web應(yīng)用模式(同步交互方式)時,卻仍無法作出關(guān)于選用何種響應(yīng)數(shù)據(jù)載體的合理選擇。如圖1所示。3響應(yīng)數(shù)據(jù)傳輸格式對比HTTP請求Ajax引擎可以用2種數(shù)據(jù)響應(yīng)格式(純文本和XML文檔)來獲取從服務(wù)器返回的信息。若使用純文本格式,當(dāng)前最常用戶界面用的格式是JSON。 用JSON和XML來返回響應(yīng)數(shù)據(jù)各有利HTML.+CSS金項目;高等學(xué)校博七點(diǎn)基金資助項目“構(gòu)件系統(tǒng)中軟件架構(gòu)定圖1傳統(tǒng)的Web應(yīng)用模式(周步交互方式)義與構(gòu)中國煤化工D0602690020基于Ajax的Web應(yīng)用模式(異步交互方式)如圖2所示。作儲筒CNMHG'主研方向:軟件工程,從圖1和圖2川"的對比中可以看到,與傳統(tǒng)Web應(yīng)用相比,謝瑾缶,講師在基于Ajax 的Web應(yīng)用中,在向作為中間層的Aiax 引擎返收稿日期: 2009-08-03 E -mai: darkwhite29@gmail.com- -52-弊,而由于XML作為Web上數(shù)據(jù)表示事實(shí)標(biāo)準(zhǔn)的地位,在.上減少瀏覽器和服務(wù)器之間傳輸?shù)臄?shù)據(jù)量。隨著應(yīng)用程序中傳統(tǒng)方式下較多采用XML作為數(shù)據(jù)載體。以下將從幾個方的數(shù)據(jù)交換量的增長,數(shù)據(jù)結(jié)構(gòu)的復(fù)雜化,JSON 數(shù)據(jù)量小面作進(jìn)一步分析,通過對比兩者的優(yōu)劣,就可選用一個當(dāng)前的優(yōu)勢將更明顯。應(yīng)用場景下最合適的響應(yīng)數(shù)據(jù)載體,從而達(dá)到優(yōu)化Ajax響應(yīng)3.2客戶端解析效率數(shù)據(jù)傳輸過程進(jìn)而提高整個程序性能的目的。JSON與XML都是結(jié)構(gòu)化的數(shù)據(jù)交換格式,兩者的不同3.1數(shù)據(jù)量在于XML本身是DOM樹結(jié)構(gòu)的,需要JavaScript操作DOM下面通過2個示例:在Google Suggest 中輸入查詢字符元素來進(jìn)行解析才能獲取其中的數(shù)據(jù)。而JSON本身就是串"compiler" 后返回搜索建議(示例I)和電子郵件(示例2),JavaScript,因此,只要調(diào)用JavaScript的eval()方法將JSON來對2種數(shù)據(jù)響應(yīng)格式作出對比。字符串序列化成為JavaScript 對象之后,就可以直接讀取其示例1的XML格式代碼如下:屬性來獲取數(shù)據(jù)。<?xml version=*1.0" encding"ulf-8*"?>下面通過一個簡單的測試程序來計算代碼的執(zhí)行時間,從而比較2種格式讀取數(shù)據(jù)時的解析效率。其中,解析XMLvar tl = new Date().getTime);for(var i=0; i10000; it+){var data = request.responseXML;("name' )O1,firstChild.nodeValue;var website■data.getElementsByTagName("website")[O].firstChild.nodeValue;('email")0/.frstChil.nodeValue;alr(2-t1);解析JSON中響應(yīng)數(shù)據(jù)的代碼如下:示例1的JSON格式代碼如下:vartI = new Date().getTime);{"suggestions":{for(var i=0; i10000; i++){"terms":"compiler","sugestion":[{var name = data.person.name;"term":"compiler compliance lel"“rsults".*451, 000 resuls"}, {var email = data.person.email;"erm'"."compiler design".“ests':*9S2, 000 results"},{var website = dataperson.websit;trem'.*compiler opios"sust".*253, 000 resuts"},{"erm"."compiler oimizion"suts".*417, 000 rsuts"),{var口2 = ncw Datc()getTime0);erm"."compiler sericise,"sust:*5t, 400 results"),{al(2-t1);"term"."compiler course"," rsusts":*s, 400, 000 rsuts",{;上面2段分別解析了XML和JSON中響應(yīng)數(shù)據(jù)的代碼"term"."compiler conference","'suts':*s, 080, 0000 resuls"),{中,for 循環(huán)中的代碼是兩者各自的解析操作,在解析操作代em":"compiler er,",suts,."t, 700, 000 rsuls"),{碼段的開始和結(jié)束分別使用了JavaScript中的getTime()函數(shù)erem'."compilers and compiler generators,","esults": “*314, 000來記錄時間,最后計算差值,即代碼的運(yùn)算時間。為消除偶results"然誤差,重復(fù)實(shí)驗10次,數(shù)據(jù)解析效率分析如圖4所示。]}由于篇幅關(guān)系,示例2的代碼不具體給出。XML和JSON2500 |格式響應(yīng)數(shù)據(jù)量分析如圖3所示。2000150080JSON1000s0050器40XOMLISON316ML20ISON F圜4 XML和JSON格式的教據(jù)解析效率分析示例|樂微2從圖4可以看出,JSON的數(shù)據(jù)解析效率遠(yuǎn)比XML高,圈3 XML和JSON格式晌應(yīng)數(shù)據(jù)量分析即使用JSON作為響應(yīng)數(shù)據(jù)載體能會加快頁面響應(yīng)速度,便可以看到,若服務(wù)器端返回的是XML格式的數(shù)據(jù),除得運(yùn)中國煤化工更加顯著,用戶體驗了冗余的開始結(jié)束標(biāo)簽之外,還必須確保該XML文檔含有更加北特定內(nèi)容的首部信息,如XML版本號和編碼格式;而若采.3CNMHG用JSON返回響應(yīng)數(shù)據(jù),使用的結(jié)構(gòu)化符號將短小精悍許多,對于如何將一段數(shù)據(jù)序列化為一個XML文檔,各種服如逗號、冒號等只占一個字符的簡單符號,這將在很大程度務(wù)器端編程語言都有提供多種方式來實(shí)現(xiàn),如在.NET框架-53-下,C#中的XmlSerializer 類,通過結(jié)合TextWriter類,它可端處理效率和安全性,而JSON優(yōu)于XML的方面是數(shù)據(jù)量和以序列化-個對象成為XML格式??蛻舳私馕鲂?。于是,針對具體的開發(fā)場景,可以給出如而對于JSON的自動生成支持工具,目前來講還比較少。下響應(yīng)數(shù)據(jù)載體選取方案用作基本優(yōu)化策略:在開發(fā)一個基因此,從服務(wù)器端開發(fā)效率上來講,較早出現(xiàn)并且更加標(biāo)準(zhǔn)于Ajax 技術(shù)的Web應(yīng)用程序時,在安全性要求不高及服務(wù)化、規(guī)范化的XML會比JSON有更好的表現(xiàn)。器處理能力較強(qiáng)的場景下,選用JSON更好;在用戶體驗要3.4安全性分析求不高的安全敏感場景下,選用XML較合適;在用戶體驗JSON是一種用于在2臺機(jī)器之間的傳輸數(shù)據(jù)的數(shù)據(jù)交和安全性要求都較高的場景下,應(yīng)從大局者眼,選用較為安換格式。由于它承載的只是數(shù)據(jù),不會含有賦值和調(diào)用,因.全的XML而犧牲--部分系統(tǒng)性能。此它是安全中立的。而當(dāng)開發(fā)人員用eva()函數(shù)把JSON數(shù)據(jù)總之,開發(fā)人員需要認(rèn)真評估在不同場景下2種響應(yīng)數(shù)作為JavaScript代碼執(zhí)行,從而轉(zhuǎn)化為JavaScript對象時,攻據(jù)表示方式的成本和效率,了解兩者的差異后,再來根據(jù)實(shí)擊者可以在JSON數(shù)據(jù)中攜帶惡意的JavaScript代碼發(fā)送給客際需要進(jìn)行合理選擇,或直接采用傳統(tǒng)的頁面重載刷新的方戶端,這樣eval()函 數(shù)就會執(zhí)行這些惡意代碼,系統(tǒng)可能會式而不是采用Ajax技術(shù)。因此而崩潰。5結(jié)束語另外,JSON本質(zhì)上就是JavaScript,由于Web應(yīng)用程序本文的不足之處在于提出的部分觀點(diǎn)尚無法給出量化的的所有訪問者都可以閱讀到程序中的JavaScript 源代碼,因模型來衡量,有的只能通過主觀經(jīng)驗來判斷,如怎樣根據(jù)安此對于一些敏感數(shù)據(jù),除非使用了代碼混淆器之類的工具來全隱患的嚴(yán)重程度來決定選用XML還是JSON,這都是需要使得JSON文檔的URL無法預(yù)測,使用JSON才是安全的。進(jìn)一步研究的內(nèi)容。XML由于解析時不含有任何本地執(zhí)行過程,因此相對JSON來講更安全-一些。銬文獻(xiàn)4優(yōu)化策略[1] Garett J J. Ajax: A New Approach to Web Applications(EB/OL].通過以上分析,可以總結(jié)出XML與JSON的對比結(jié)果如(2005-02-18). ht:/:/ww.adaptivepath.com/ideas/essays/archives/000385.php.表1所示。2]王東,孫彬.基于Ajax的MVC框架的改造分析[幾. 計算機(jī)表1 XML 和JSON的對比結(jié)果應(yīng)用, 2007, 27(S1): 293-295.數(shù)據(jù)格式 數(shù)據(jù)區(qū)解析效事開發(fā)效率安合性XML較[3]陽餼,徐建波. Ajax技術(shù)的性能改進(jìn)研究[J].計算機(jī)工程與科ISON學(xué), 2008, 30(6): 146-148.可以看出,XML表現(xiàn)較好的方面是用戶可讀性、服務(wù)器編輯顧姣健(上接第51頁)(4)術(shù)語的非交性檢驗。給定術(shù)語集s,如果對于任意(3)如果存在個體a,使得類的實(shí)例聲明[]([]), i∈1,2個原子術(shù)語或者術(shù)語公式x y和任意一個本體商空間2..",n成立,則稱實(shí)例聲明β關(guān)于[O]n是一致的。[0],=<[X],[F], [7]>,ie {,,.,n},有[x]0[y]=0,則稱y(4)如果存在個體a, b,使得屬性的實(shí)例聲明[P]l(a], [b]),與x非交。iel,2..,n成立,則實(shí)例聲明β關(guān)于[0]n是一致的。根據(jù)以上定義,對“本體商空間[0]<[X],[F],[7].>,ie{0, 4 結(jié)束語1,.-, n}中的術(shù)語a和b是等價的"進(jìn)行驗證,具體方法如下:本文介紹了屬性粒度商空間下本體的形式化和檢驗問(1)給定本體0=和屬性集等價關(guān)系集R。題,實(shí)現(xiàn)了在不同層次的屬性商空間之間進(jìn)行自由跳轉(zhuǎn)。下(2)在屬性等價關(guān)系集R的作用下,對本體0進(jìn)行商空間一步的工作是研究基于屬性粒度商空間的本體推理,構(gòu)造一運(yùn)算,形成不同層次的商空間: 01<1...<..個基于屬性粒度商空間的完備推理體系,并且基于此進(jìn)行應(yīng)(3)如果存在[O]=<(I], [F]I. []>, ie {.,.. n},使得[a],用開發(fā)。[b]∈[xI,成立,且[a]c [b]和[]s [a]成立,則根據(jù)商空間的多考文獻(xiàn)保真原理"4,一定有a=b成立。[1]王洪偉,吳家春蔣馥本體的形式化模型及在語義查詢中的其他方面的檢驗方法類似,在此不再重復(fù)。應(yīng)用[C/全國搜索引擎和網(wǎng)上信息挖掘?qū)W術(shù)討論會論文集.3.2實(shí)例檢驗北京:高等教育出版社, 2003: 205-213.定義9實(shí)例聲明的一致性:給定本體0=, 若[2]鄧凱,吳家春,王洪偉.本體論在知識圖書館的應(yīng)用研究[D].存在本體屬性集等價關(guān)系集R是實(shí)例聲明β的一個模型,則情報科學(xué), 2003, 21(1): 106-108.稱β是一致的,否則稱β是不一一致的。 若屬性集等價關(guān)系集[3]李彥敏.王曉東.基于角色概念的合作學(xué)習(xí)Ontology 的構(gòu)建[小]R既是β的一個模型,又是[0],的一一個模型,則稱β關(guān)于[0],河南師范大學(xué)學(xué)報:自然科學(xué)版,2007, 35/2); 4749.是一致的。若屬性集等價關(guān)系集R是[0],的一個模型,則稱[4)張鈸,張鈴問題求解理論及應(yīng)用[M].2版北京:消華大[0]n是一致的。學(xué)出版社,2007.下面對本體實(shí)例的-致性進(jìn)行驗證:[5] Zh". Snacc Theory off ProblemR, .,Rn}. .(1)給定本體0=和屬性等價關(guān)系集R={Ro,61鄧i中國煤化工5923): 287-298.YHC N M H G研究綜述[]北京大學(xué)(2)在等價關(guān)系R,∈R的作用下,對本體0進(jìn)行商空聞運(yùn)學(xué)報:日然料字做,20U2, 38(): 730-/38.算,確定實(shí)例商空間[O],=<[X].. [F] [7],>.偏輯張帆
論文截圖
版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時內(nèi)刪除。