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