Ajax技术的数据响应优化 Ajax技术的数据响应优化

Ajax技术的数据响应优化

  • 期刊名字:计算机工程
  • 文件大小:322kb
  • 论文作者:谭力,杨宗源,谢瑾奎
  • 作者单位:华东师范大学计算机科学技术系
  • 更新时间:2020-09-30
  • 下载次数:
论文简介

第36卷第7期计算机工程2010年4月VoL36Computer EngineeringApril 2010●软件技术与数据库●文章编号: 1000- -3428(2010)07- 0052- 03文献标识码: A中團分类号: TP311.52Ajax技术的数据响应优化谭力,杨宗源,谢瑾奎(华东师范大学计算机科学技术系,上海200241)摘要: 对Ajax工作原理和数据传输性能进行分析,从响应数据的返回格式角度入手,通过实验,对比2种数据格式XML和JSON的差异与优劣,基于实际应用场最,给出权衡取舍的建议,总结出效率和安全性更高的Ajax模型,改善了目前Ajax带来的数据响应冗余的缺陷。关键词: Ajax 技术;数据晌应; 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概述回响应数据并解析时,需要额外的XML或文本中间数据解作为多项传统技术的优势整合,Ajax 以其各技术分支所析过程,存在着一定的效率低下问题,这会影响该Web应用体现出的综合优势提供着较好的用户体验,因此,获得了广程序的整体性能。阚的Web应用市场。Ajax综合使用了JavaScript, XHTML,HTPCSS, DOM, XML, XSTL以及XMLHttpRequest等技术,集上述各技术的优缺点于一身。当运用Ajax技术来开发一个健壮ix界服务器的软件系统时,需要考虑Ajax 的可移植性、效用性和可用性等非功能性因素。而在Ajax与服务器异步交互的过程中如何HTML+CSSXML数据高效地传递响应数据则是很重要的一个环节。本文从Ajax的岗觉器客户端服务器璃数据响应角度进行分析,探讨如何趋利避害,构建一个高效圜2甚于Ajax的Web应用模式(异步交互方式)的Ajax应用程序,提出了一个整体优化方案。目前,国内关于Ajax性能优化已有的研究主要包括:对2 Ajax 性能优化分析及研究进展基于Ajax的MVC模式进行改造,借鉴Ajax和DataWindow在Ajax广泛应用的今天,提高Ajax应用程序的执行效技术创建和实现较高交互性能的B/S应用2,提出一种基于率已成为首要问题。要对Ajax的性能实施优化,首先要考虑JSON的对象序列化算法,通过分析JSON文法并建立对象导的是Ajax的基本工作原理。Ajax 采用异步交互方式,在用航图,来解决解析XML所造成的缺陷,对Ajax的首页加载户与服务器之间引入了一个用JavaScript编写的Ajax引擎,模式进行改进等。但是,这些研究只是针对XML或JSON来代替用户与服务器进行交互这样用户可以无需等待响应,各自的缺陷进行改进,当程序员面对一个Ajax实际开发场景继续其他的Web交互。传统的Web应用模式(同步交互方式)时,却仍无法作出关于选用何种响应数据载体的合理选择。如图1所示。3响应数据传输格式对比HTTP请求Ajax引擎可以用2种数据响应格式(纯文本和XML文档)来获取从服务器返回的信息。若使用纯文本格式,当前最常用户界面用的格式是JSON。 用JSON和XML来返回响应数据各有利HTML.+CSS金项目;高等学校博七点基金资助项目“构件系统中软件架构定图1传统的Web应用模式(周步交互方式)义与构中国煤化工D0602690020基于Ajax的Web应用模式(异步交互方式)如图2所示。作储筒CNMHG'主研方向:软件工程,从图1和图2川"的对比中可以看到,与传统Web应用相比,谢瑾缶,讲师在基于Ajax 的Web应用中,在向作为中间层的Aiax 引擎返收稿日期: 2009-08-03 E -mai: darkwhite29@gmail.com- -52-弊,而由于XML作为Web上数据表示事实标准的地位,在.上减少浏览器和服务器之间传输的数据量。随着应用程序中传统方式下较多采用XML作为数据载体。以下将从几个方的数据交换量的增长,数据结构的复杂化,JSON 数据量小面作进一步分析,通过对比两者的优劣,就可选用一个当前的优势将更明显。应用场景下最合适的响应数据载体,从而达到优化Ajax响应3.2客户端解析效率数据传输过程进而提高整个程序性能的目的。JSON与XML都是结构化的数据交换格式,两者的不同3.1数据量在于XML本身是DOM树结构的,需要JavaScript操作DOM下面通过2个示例:在Google Suggest 中输入查询字符元素来进行解析才能获取其中的数据。而JSON本身就是串"compiler" 后返回搜索建议(示例I)和电子邮件(示例2),JavaScript,因此,只要调用JavaScript的eval()方法将JSON来对2种数据响应格式作出对比。字符串序列化成为JavaScript 对象之后,就可以直接读取其示例1的XML格式代码如下:属性来获取数据。<?xml version=*1.0" encding"ulf-8*"?>下面通过一个简单的测试程序来计算代码的执行时间,从而比较2种格式读取数据时的解析效率。其中,解析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中响应数据的代码如下:示例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中响应数据的代码"term"."compiler conference","'suts':*s, 080, 0000 resuls"),{中,for 循环中的代码是两者各自的解析操作,在解析操作代em":"compiler er,",suts,."t, 700, 000 rsuls"),{码段的开始和结束分别使用了JavaScript中的getTime()函数erem'."compilers and compiler generators,","esults": “*314, 000来记录时间,最后计算差值,即代码的运算时间。为消除偶results"然误差,重复实验10次,数据解析效率分析如图4所示。]}由于篇幅关系,示例2的代码不具体给出。XML和JSON2500 |格式响应数据量分析如图3所示。2000150080JSON1000s0050器40XOMLISON316ML20ISON F圜4 XML和JSON格式的教据解析效率分析示例|乐微2从图4可以看出,JSON的数据解析效率远比XML高,圈3 XML和JSON格式晌应数据量分析即使用JSON作为响应数据载体能会加快页面响应速度,便可以看到,若服务器端返回的是XML格式的数据,除得运中国煤化工更加显著,用户体验了冗余的开始结束标签之外,还必须确保该XML文档含有更加北特定内容的首部信息,如XML版本号和编码格式;而若采.3CNMHG用JSON返回响应数据,使用的结构化符号将短小精悍许多,对于如何将一段数据序列化为一个XML文档,各种服如逗号、冒号等只占一个字符的简单符号,这将在很大程度务器端编程语言都有提供多种方式来实现,如在.NET框架-53-下,C#中的XmlSerializer 类,通过结合TextWriter类,它可端处理效率和安全性,而JSON优于XML的方面是数据量和以序列化-个对象成为XML格式。客户端解析效率。于是,针对具体的开发场景,可以给出如而对于JSON的自动生成支持工具,目前来讲还比较少。下响应数据载体选取方案用作基本优化策略:在开发一个基因此,从服务器端开发效率上来讲,较早出现并且更加标准于Ajax 技术的Web应用程序时,在安全性要求不高及服务化、规范化的XML会比JSON有更好的表现。器处理能力较强的场景下,选用JSON更好;在用户体验要3.4安全性分析求不高的安全敏感场景下,选用XML较合适;在用户体验JSON是一种用于在2台机器之间的传输数据的数据交和安全性要求都较高的场景下,应从大局者眼,选用较为安换格式。由于它承载的只是数据,不会含有赋值和调用,因.全的XML而牺牲--部分系统性能。此它是安全中立的。而当开发人员用eva()函数把JSON数据总之,开发人员需要认真评估在不同场景下2种响应数作为JavaScript代码执行,从而转化为JavaScript对象时,攻据表示方式的成本和效率,了解两者的差异后,再来根据实击者可以在JSON数据中携带恶意的JavaScript代码发送给客际需要进行合理选择,或直接采用传统的页面重载刷新的方户端,这样eval()函 数就会执行这些恶意代码,系统可能会式而不是采用Ajax技术。因此而崩溃。5结束语另外,JSON本质上就是JavaScript,由于Web应用程序本文的不足之处在于提出的部分观点尚无法给出量化的的所有访问者都可以阅读到程序中的JavaScript 源代码,因模型来衡量,有的只能通过主观经验来判断,如怎样根据安此对于一些敏感数据,除非使用了代码混淆器之类的工具来全隐患的严重程度来决定选用XML还是JSON,这都是需要使得JSON文档的URL无法预测,使用JSON才是安全的。进一步研究的内容。XML由于解析时不含有任何本地执行过程,因此相对JSON来讲更安全-一些。銬文献4优化策略[1] Garett J J. Ajax: A New Approach to Web Applications(EB/OL].通过以上分析,可以总结出XML与JSON的对比结果如(2005-02-18). ht:/:/ww.adaptivepath.com/ideas/essays/archives/000385.php.表1所示。2]王东,孙彬.基于Ajax的MVC框架的改造分析[几. 计算机表1 XML 和JSON的对比结果应用, 2007, 27(S1): 293-295.数据格式 数据区解析效事开发效率安合性XML较[3]阳餼,徐建波. Ajax技术的性能改进研究[J].计算机工程与科ISON学, 2008, 30(6): 146-148.可以看出,XML表现较好的方面是用户可读性、服务器编辑顾姣健(上接第51页)(4)术语的非交性检验。给定术语集s,如果对于任意(3)如果存在个体a,使得类的实例声明[]([]), i∈1,2个原子术语或者术语公式x y和任意一个本体商空间2..",n成立,则称实例声明β关于[O]n是一致的。[0],=<[X],[F], [7]>,ie {,,.,n},有[x]0[y]=0,则称y(4)如果存在个体a, b,使得属性的实例声明[P]l(a], [b]),与x非交。iel,2..,n成立,则实例声明β关于[0]n是一致的。根据以上定义,对“本体商空间[0]<[X],[F],[7].>,ie{0, 4 结束语1,.-, n}中的术语a和b是等价的"进行验证,具体方法如下:本文介绍了属性粒度商空间下本体的形式化和检验问(1)给定本体0=和属性集等价关系集R。题,实现了在不同层次的属性商空间之间进行自由跳转。下(2)在属性等价关系集R的作用下,对本体0进行商空间一步的工作是研究基于属性粒度商空间的本体推理,构造一运算,形成不同层次的商空间: 01<1...<..个基于属性粒度商空间的完备推理体系,并且基于此进行应(3)如果存在[O]=<(I], [F]I. []>, ie {.,.. n},使得[a],用开发。[b]∈[xI,成立,且[a]c [b]和[]s [a]成立,则根据商空间的多考文献保真原理"4,一定有a=b成立。[1]王洪伟,吴家春蒋馥本体的形式化模型及在语义查询中的其他方面的检验方法类似,在此不再重复。应用[C/全国搜索引擎和网上信息挖掘学术讨论会论文集.3.2实例检验北京:高等教育出版社, 2003: 205-213.定义9实例声明的一致性:给定本体0=, 若[2]邓凯,吴家春,王洪伟.本体论在知识图书馆的应用研究[D].存在本体属性集等价关系集R是实例声明β的一个模型,则情报科学, 2003, 21(1): 106-108.称β是一致的,否则称β是不一一致的。 若属性集等价关系集[3]李彦敏.王晓东.基于角色概念的合作学习Ontology 的构建[小]R既是β的一个模型,又是[0],的一一个模型,则称β关于[0],河南师范大学学报:自然科学版,2007, 35/2); 4749.是一致的。若属性集等价关系集R是[0],的一个模型,则称[4)张钹,张铃问题求解理论及应用[M].2版北京:消华大[0]n是一致的。学出版社,2007.下面对本体实例的-致性进行验证:[5] Zh". Snacc Theory off ProblemR, .,Rn}. .(1)给定本体0=和属性等价关系集R={Ro,61邓i中国煤化工5923): 287-298.YHC N M H G研究综述[]北京大学(2)在等价关系R,∈R的作用下,对本体0进行商空闻运学报:日然料字做,20U2, 38(): 730-/38.算,确定实例商空间[O],=<[X].. [F] [7],>.偏辑张帆

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。