(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf_第1页
(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf_第2页
(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf_第3页
(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf_第4页
(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机软件与理论专业论文)ajaxria+web开发框架研究、设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学硕士研究生学位论文 a j a x riaw e b 开发框架研究、设计与实现 摘要 网络应用程序的开发模式正在经历着一个从胖客户端到瘦客户端,又逐 渐回归到胖客户端的这样一个螺旋式渐进发展过程。w e b 服务的种类逐渐 多样化,基于互联网技术的软件开发模式已经逐步成为大型应用软件开发 的首选。 传统的b s 软件开发结构,由于互动性和实时性的缺陷,已经无法满足 现实的需要,逐步显现出自身的缺陷。从软件开发的角度来看,仍属于重 量级过程。目前的b s 相对于c i s 结构,还有很多难实现的功能,难以满 足一些复杂的需求。随着越来越多的分布式应用采用b s 模式,人们希望 w e b 应用拥有快速部署和桌面应用功能强大的特性。 a j a x 技术极大的发掘了浏览器的潜力,开启了大量新的可能性。越来 越复杂的w e b 应用,不断冲击着传统的w e b 应用。r i a 架构的推出无疑 为b s 应用开发注入了活力。如何发挥r i a 架构的优势,同时又保持传统 结构的稳固性、简便性,并在此基础上建立适合应用开发的新型开发架构 是本文讨论的重点内容。 本文在总结分析a j a x 、r t a 、w e b 应用设计理论和方法的基础上,对 w e b 开发与框架、客户端编程模型进行详细研究,为解决现有的a j a x 框 架所面临的代码纠缠和代码分散问题,分析w e b 框架的原理与机制,提出 太原理工大学硕士研究生学位论文 一种基于a j a x 的r i a 客户端编程框架解决方案,设计相关的类与组件层 次,实现与服务器端中立的客户端编程模型。最后介绍了该框架在实际项 目系统中的应用,表明了框架具有松耦合、高效率的特点,并且有较好的 性能。 关键词:a j a x ,r i a ,w e b 框架,客户端,模型,性能 太原理工大学硕士研究生学位论文 r e s e a r c hd e s i g na n di 肝l e 姬n t a t i o no f 吣瞰r i aw e bd e v e l o p m e n tf 眦w o r k a bs t r a c t w e b a p p l i c a t i o nd e v e l o p m e n tm o d e l i su n d e r g o i n gf r o mf a tc u s t o m e r p r e m i s e st oat h i nc l i e n t ,a n dg r a d u a l l yr e t u r nt ot h ef a tc l i e n ts u c ha ss p i r a l p r o g r e s s i v ed e v e l o p m e n tp r o c e s s b a s e do ni n t e m e tt e c h n o l o g y ,w e b s e r v i c e s g r a d u a l l yd i v e r s i f yt h et y p e s ,h e n c es o f t w a r ed e v e l o p m e n t m o d e lh a sb e c o m ea l a r g e s c a l ea p p l i c a t i o no fs o l u t i o nf o rs o f t w a r ed e v e l o p m e n t t r a d i t i o n a lb ss o f t w a r ed e v e l o p m e n ts t r u c t u r e ,i n t e r a c t i v ea n dr e a l - t i m e p r o b l e m ,h a sb e e nu n a b l et om e e tt h en e e do fr e a l i t y ,a n dg r a d u a l l ys h o w i n g i t s f l a w s f r o mt h ep o i n to fv i e wo fs o f t w a r ed e v e l o p m e n t ,i t sb r o u g h td e v e l o p m e n t c o m p l e x i t yo f t h ep r o b l e ma n d e x c e s s i v e l yh i g hc o s t s 。w h i c hi ss t i l la h e a v y w e i g h tp r o c e s s t h ec u r r e n t b st oc ss t r u c t u r e ,t h e r ea r es t i l lm a n yd i f f i c u l t i e s t oa c h i e v et h ef u n c t i o n ,i ti sd i f f i c u l tt om e e tt h en e e d so fs o m ec o m p l e x i t y a s m o r ea n dm o r ed i s t r i b u t e da p p l i c a t i o n su s i n gb sm o d e ,i ti sh o p e dt h a ta tt h e s a m et i m eh a sd i s t r i b u t e da p p h c a t i o nw e ba p p l i c a t i o nr a p i dd e p l o y m e n ta n d d e s k t o pa p p l i c a t i o n sp o w e r f u lf e a t u r e s 太原理工大学硕士研究生学位论文 a j a x t e c h n o l o g yt oe x p l o r et h eg r e a tp o t e n t i a lo f t h eb r o w s e r ,o p e n i n gu p al o to fn e wp o s s i b i l i t i e s w e bi n c r e a s i n g l yc o m p l e xa p p l i c a t i o n s ,t h ei m p a c to n t h et r a d i t i o n a lw e b a p p l i c a t i o n r i af r a m e w o r kf o rt h ei n t r o d u c t i o no f d o u b t b sa p p l i c a t i o nd e v e l o p m e n ti n j e c t e dv i t a l i t y h o wt ob r i n gi n t op l a yt h e a d v a n t a g e so fr i af r a m e w o r k ,w h i l em a i n t a i n i n gt h et r a d i t i o n a ls t r u c t u r eo f s t a b i l i t y ,s i m p l i c i t y ,a n do nt h i sb a s i sf o rt h ee s t a b l i s h m e n to ft h e n e w a p p l i c a t i o nd e v e l o p m e n tf r a m e w o r ki st h ef o c u so f d i s c u s s i o ni nt h i sp a p e r t h i sp a p e ra n a l y s i sa j a x ,r i a ,w e bd e s i g nt h e o r ya n dm e t h o do f a p p l i c a t i o no nt h eb a s i so fd e v e l o p m e n ta n dw e b f r a m e w o r k ,c l i e n t p r o g r a m m i n gm o d e l i n t ot h ed e t a i l e ds t u d y ,i no r d e rt os o l v et h ee x i s t i n ga j a x f r a m e w o r ks t r u g g l ef a c e db yt h ec o d ea n dc o d ed e c e n t r a l i z e d ,w e b f r a m e w o r k o fp r i n c i p l e sa n dm e c h a n i s m s ,ar i ab a s e do nt h ea j a xc l i e n tp r o g r a m m i n g f r a m e w o r ks o l u t i o n ,d e s i g na n dc o m p o n e n t so ft h er e l e v a n tl e v e l , i m p l e m e n t a t i o na n d s e r v e rn e u t r a lc l i e n tp r o g r a m m i n gm o d e l f i n a l l y ,t h ea c t u a l p r o j e c ts y s t e mi nt h ef r a m e w o r k o ft h ea p p l i c a t i o no faf r a m e w o r kv e r i f i e dt h a t t h i sf r a m e w o r kw a sl o o s e l yc o u p l e d ,h i g h l y e f f i c i e n tc h a r a c t e r i s t i c s ,a n db e t t e r p e r f o r m a n c e k e yw o r d s :a j a x ,r i a , w e bf r a m e w o r k ,c l i e n t ,m o d e l ,p e r f o r m a n c e i v 声明户明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名: 日期:一塑哆! f 二乒 关于学位论文使用权的说明 - 本人完全了解太原理工大学有关保管、使用学位论文的规定,其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;学校可以学术交流为:目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) 。 签 之t - i :也 i 导师签名: 司鸳2 右毒兰 。l 乞 一 p 日期:上? p :6 幺 日期:一印吩多够 太原理工大学硕士研究生学位论文 1 1 课题背景 第一章绪论 随着计算机技术和网络技术的快速发展,i n t e m e t 网已遍及世界,为一亿多用户提 供着多样化的网络信息服务。网络时代的到来,经济、文化、军事和社会将更加强烈的 依赖于网络。 互联网技术从早期的简单静态w e b 页面发展到动态的w e b 页面,人们可以和服 务器端进行信息交互,提交数据,并由服务器运行一定的处理逻辑,处理用户数据,并 将结果反馈回客户端。对服务器端的开发也经历了一个漫长的发展历程,从早期的c g i , 发展到p h p ,a s p ,j s p ,c o l d f u s i o n ,一直到最近流行的a s p n e t 以及基于j 2 e e 的 s e r v l e t ,e j b ,s t r u t s ,s p r i n g ,j s f 等等;从早期的面向过程的编程发展到面向对象编程, 从简单的开发模式到成熟的m v c 开发模式。 服务端开发技术的发展,人们在此基础上提出了b ( b r o w s e r ) s ( s e r v e r ) 的软件设计结 构,即客户端采用浏览器,只安装维护一个服务器。相对于c ( c l i e n t ) s ( s e r v e r ) 结构,它 不需要再考虑将应用部署到数以千计的用户机器上,只需要在服务器上部署程序,软件 升级也仅仅升级服务端的程序,这使维护工作量大大减少。另外c s 软件一般是采用两 层结构,客户端与数据库服务器直接交互,而b s 则采用三层结构,客户端与数据库服 务器加入了一层业务逻辑层,将大量的处理逻辑放到业务逻辑层而不是客户端来运行, 大大降低了对客户端的要求。同时b s 相对于c s 来说,在数据一致性、实时性和安全 性方面都有较好的表现,所以人们越来越倾向于采用b s 的软件结构系统。但是,随着 b s 结构的广泛应用,人们发现该结构也存在下列一些问题: 服务器端压力过大,没有充分利用客户端的资源。 b s 结构实现的是一种瘦客户端,即将业务逻辑全部由服务端来实现,而客户端基 本不实现业务逻辑,这样所有的压力都放在服务器。随着硬件技术的更新,很多客户端 太原理工大学硕士研究生学位论文 具有闲置的能力来处理一部分业务逻辑,缓解服务端的压力,但是传统的b s 结构并不 能充分调用客户端的闲置资源。 没有做到数据的按需获取,无法实现页面部分加载和部分刷新 有时人们仅仅需要从服务端获取少量数据,但是服务器端却将数据连同页面冗余信 息一并返回,客户端重新加载。这样就加大了服务器端的负担,增加了网络流量,浪费 了网络带宽,并延长了用户的响应时间。 在软件的流畅性和快捷性上与c 缁结构相比略有欠缺。 b s 程序每次与服务端交互都需要重新刷新页面,无法实现无刷新提交数据,这样 用户就有个等待过程,无法达到像c s 程序一样的实时响应。 正是由于传统b s 程序的这些缺陷,人们尝试采用一些新的技术来对传统b s 架构 的程序进行改进,如舢巾l e t j a v a s c r i p t , f l a s h ,d h t m l ,c s s ,x m l 等等。然而它们都存 在着各种各样的不足:有的需要客户端插件的支持,有的存在版本差异和标准的不同, 无法实现通用性,单独使用这些技术都不能有效的解决上述的问题。直到2 0 0 5 年2 月, a d a p t i v ep a t h 的j e s s e j a m e sg a r r e t t 在他的文章a j a x :an e w a p p r o a c h t ow e b a p p l i c a t i o n t m 中,提出了a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx m l ,即异步j a v a s c r i p t 和 x m l ) 技术,才使解决上述问题成为可能。同时,a j a x 框架的出现,代表着w e b 2 0 时 代的来临。自2 0 0 5 年开始,由g o o g l e 公司发起,a p a c h e ,微软等组织或公司推广的 a j a x 框架技术,迅速在2 0 0 6 、2 0 0 7 年在国内外各个大小企业应用系统得到了普及, 无论是商业主页,还是e - m a i l 服务,抑或是目前极为流行的b l o g 主页,随处可见 a j a x 搭建的页面和服务。 1 2 研究动机与意义 传统的分布式开发模型虽然功能强,扩展性好,但是却带来了开发成本以及开发复 杂性过高的问题,从软件开发的角度来看,仍属于重量级过程。目前的b s 相对于c s 结构,还有很多难实现的功能,难以满足一些复杂的需求。随着越来越多的分布式应用 采用b s 模式,人们希望分布式应用同时拥有w e b 应用快速部署和桌面应用功能强大 的特性。 传统b s 系统都是基于无连接、无状态的h i q p 协议,使用浏览器承载客户端界面 和主要功能,客户端功能受到浏览器的限制。同时应用程序都是建立在基于页面之上, 2 太原理工大学硕士研究生学位论文 一个应用程序是一个响应h r r 呼请求的服务的过程的集合。每一个过程需要包含一个 h t m l 页面并且在响应客户端浏览器的访问时把它返回给客户端。这就造成了如下的一 些问题: 基于页面的应用程序采用h t m l ,j a v a s c r i p t 脚本语言混合编程,对于开发高复杂 度的系统显得效率低下,不利于代码重用和程序的维护; 客户端使用h t r p 请求向服务器提交数据,服务器和客户端浏览器之间只能用 h t t p 参数传递变量值,并且把全局变量保存在服务器的用户s e s s i o n 里。而服务器响 应后返回的必须是h t m l 、j a v a s c r i p t 文档,受浏览器的限制,难以实现一些复杂的功 能,也不容易设计出人性化的界面; a j a x 的出现,在一定程度上解决了这些问题。但是如何与现有的m v c 设计模式 和w e b 服务器端相结合,特别是实现松耦合的结合,仍然没有很好的解决方案。如果 采用传统的面向对象编程,必然会带来代码分散和代码纠缠的问题。系统关注点涉及到 多个模块,其相关实现代码也就得遍布在这些模块里,这样程序员不得不在多个模块中 进行代码维护,增加工作量同时也增加了出错的几率,加大系统维护的难度。每个模块 中不但要考虑本身的业务逻辑,还需要考虑a j a x 的处理。这样不仅增加了对开发人员 的要求,还降低了代码的可理解性和可维护性。 a j a x 基于构建胖客户端的w e b 应用程序的特性,以及可开发友好的用户界面, 良好的交互性和互操作性,使其得到越来越多的人的青睐。并将其列入w e b 2 0 的核心 技术。 因此,充分利用a j a x 技术,实现良好的编程模型,使开发人员需要将主要精力投 入分析、构建业务逻辑的应用上,而非繁杂的代码工程。将相同类型问题的解决途径进 行抽象,抽取成一个个应用框架。 目前业界基于a j a x 的框架很多,但是质量参差不齐,有的仅仅是简单的实现,有 的是从客户端到相关服务器的一整套完整的解决方案。但是大部分框架仍然需要将服务 端处理程序与业务逻辑程序混合在一起,没有有效的解决代码分散和代码纠缠问题。 m i c r o s o f t ,g o o g l e 都己经推出了a j a x 应用框架,开源社区的d w r 和z k 也是目前比 较优秀的框架。总的来说,目前主流a j a x 框架都是基于动态w e b 技术的,如何使用 a j a x 技术,结合w e b 开发模式与研究领域的设计方法,研究a j a x 客户端编程的理 太原理工大学硕士研究生学位论文 论,将a j a x 与现有的软件开发模式相结合,仍然具有很大的研究价值,具有一定创新 性和研究性的。 1 3 目前研究现状 自a j a x 被提出以后,各种各样的社区和组织都在做自己的扩展和实现以各种支持 a j a x 的推广。首先微软最早在自己的n e t 框架中给出了基于a j a x 的扩展和实现, 而后2 0 0 6 年2 月包括i b m 、g 0 0 g l e 、雅虎、甲骨文和b e a 系统等许多高科技公司 宣布共同支持一个开源软件计划 o p e na j a x ”,全力推广a j a x 这种新兴的w e b 开发 技术,值得一提的是这是自u n i x 诞生以后第一次有如此多的公司参与的计划,由此可 见a j a x 的非凡影响力 随着人们对a j a x 认识的不断深入和a j a x 的不断发展,a j a x 所涵盖的技术的范 围也变得更为广泛,例如相比最原始的a j a x 定义又加入了新的数据交换格式j s o n 、 可升级矢量图像s v g 、矢量可标记语言v m l 等等。对w e b 开发而言,a j a x 已经成 为一种新的设计模式,它的提出不仅是对传统的w e b 应用的巨大冲击,同时还为w e b 开发带来了极大的挑战。同时,w e b2 0 时代的到来,使a j a x 更是成为开发个性化、 中心化和信息自主化网络应用强有力的代表技术之一。 a j a x 不只是学术上的研究,也有很多公司将a j a x 应用到其企业级的开发产品中。 如g o o g l e 的g o o g l em a p s ,g m a i l , g o o g l eg r o u p ,f l i c k r 也在其网站使用了a j a x 技术, 用于用户图片的提交与共享,此外还有a m a z o n 的a 9 c o r n 搜索引擎等。 可以预见,随着a j a x 技术的发展,客户端会越来越厚,逻辑会越来越复杂,保持 客户端的中立性和可移植性,对提高软件复用度和保护客户的投资有重要意义。服务器 端只需要考虑内部的业务逻辑和提供什么样的服务,不必再动态处理任何客户端代码。 这有利于保护客户的投资,也能促进服务器端按照面向服务的方式开发,提高了应用程 序开发的效率。 详细的目前现有服务器端与客户端框架对比及分析,请参见第三章内容。 1 4 研究内容与主要贡献 本文研究的主要工作是研究各种框架的基础,设计和实现了一个独立于服务器的 a j a x r i aw e b 客户端开发框架,以此来解决现有的w e b 系统中传输的数据量大、客 4 太原理工大学硕士研究生学位论文 户端资源没有有效利用的问题。该开发框架具有良好的软件体系结构,采用了多种架构 设计模式( 如多层结构、m v c 模式、i o c 模式等) ,保证了程序具有松耦合性和易扩展性, 并提供了一些常用的可复用构件,实现了w e b 应用系统的基础功能,提供丰富的跨浏 览器组件,灵活采用j s o n x m l 为交换格式,使得服务端表示层的负荷真正减轻, 从而达到客户端的r i a 应用。 开发框架宏观上将a j a x 的处理这个横切关注点与系统中的核心关注点进行分离, 微观上将该横切关注点的实现封装在具体的组件中,使开发的系统代码变的清晰,核心 模块之间的独立性增强,代码的重用率提高,系统变得更易维护和扩展。帮助开发人员 获得最大程度的框架复用,快速开发应用系统。 具体研究内容如下: 1 、分析与研究a j a x 技术的概念、a j a x 的构成,并详细研究x h r 对象以及a j a x 中客户端与服务器的异步通信机理。 2 、阐述r i a 的概念、客户端框架如何解决面向对象编程所面临的问题,研究设计 原则和开发步骤。 3 、构建一个独立于服务器平台的客户端a j a x 框架,实现核心关注点,提出基于 a j a x 的客户端w e b 开发框架解决方案,并完成对开发过程的分析、建模与实现。 4 、开发出基于j s o n 数据格式的解析器,对数据通信队列、a j a x 应用中的数据传 输效率进行优化,提升框架的运行性能,方便开发人员使用本框架进行企业应用系统的 开发。 5 、从项目背景出发,介绍该框架体系在山西电力内容管理系统中的p o r t e t 应用、 c h a r t a c c e s sv 1 0 0 中i n s t a n t m e s s e n g e r 的实际应用,并对两者不同应用范围涉及到的性 能进行分析,最后对框架进行总结,指出框架的不足之处,提出进一步改进的方向。 5 太原理工大学硕士研究生学位论文 第二章技术概述 本章主要讨论基于w e b 的框架支持、开发相关的技术原理。 2 1w e b2 0 概述 w e b2 0 的概念是2 0 0 4 年3 月o r e i u y 公司的d a l ed o u g l a e r t y 与m e d i a l i v e 公司的 c r a i gc l i n e 在一个头脑风暴会议上提出的。o r e i l l y 公司副总裁d a l ed o u g h e v y 在这次会 议上指出:“网络非但没有破灭,而且随着许多令人激动的新程序和网站让人惊讶的突 然出现,网络比以往的作用更重要。, , l z l w e b2 0 是互联网的一次理念和思想体系的升级换代。原来自上而下的、少数资源 控制者集中控制主导的互联网体系,现在转变为自下而上的、由用户集体智慧和力量主 导的互联网体系。w e b2 o 内在的动力来源是将互联网的主导权交还个入,从而充分发 掘了个人的积极性。广大个人所贡献的影响和智慧以及个人联系形成的社群影响替代了 原来少数人的影响,从而极大地解放了个人的创作和贡献的潜能,使互联网的创造力上 升到了新的量级。 w e b2 0 不单纯是技术或者解决方案,而是一套可执行的理念体系,实践着网络社 会化和个性化的理想。具体的说从模式上是单纯的读向写、共同建设的发展。w c b2 d 是以f l i c k r , t r i b e s 等网站为代表,以b l o g ,t a g ,s n s ,r s s ,w i k i 等社会软件的应用为核 心,依据六度分隔、分形、x m la j a x 等新理论和技术实现的互联两新一代模式。 2 ,2a j a x 技术 w e b 服务器每时每刻要处理海量的数据请求,频繁的操作导致了数据的重复请求, 不但加大了服务器的负担,而且造成用户界面的闪烁或白屏。 6 太原理工大学硕士研究生学位论文 针对以上问题,2 0 0 5 年2 月j e s s ej a m e sg a r r e t t f t ! 提出了a j a x 这个概念,a j a x 是 a s y n c h r o n o u sj a v a s c r i p ta n dx m l 的缩写。a j a x 并不是- - i - j 新的语言或技术,它实际 上是几项技术按一定方式的组合,在共同的协作中发挥各自的作用,它包括: 使用x h t m l 和c s s 标准化呈现; 使用d o m 实现动态显示和交互; 使用x m l 或j s o n 进行数据交换与处理; 使用x m l h t t p r e q u e s t 进行异步数据读取: 最后用j a v a s c r i p t 绑定和处理所有数据。 其中x m l h t t p r e q u e s t ,j a v a s c r i p t 和d o m 是a j a x 技术的核心。 图2 1 为a j a x 的工作原理,其相当于在用户和服务器之间加了个中间层a j a x 引擎,使用户操作与服务器响应异步化。图中可以看出,服务器与客户端交互之后,数 据更新与显示部分都是在客户端完成的。并不是所有的用户请求都提交给服务器,只有 确定需要从服务器读取新数据时再由a j a x 引擎代为向服务器提交请求。在使用a j a x 引擎后,用户从感觉上几乎所有的操作都会很快响应没有页面重载。 图2 - 1a j a x 的工作原理【3 1 f i g2 1a j a xp r o c e s sp r i n c i p l e 相比传统的w e b 应用而言,a j a x 应用交付给用户是的一个应用。图2 2 是传统 w e b 应用的生命周期,用户和应用会话的所有状态都保留在w e b 服务器上。用户在会 话中看到是一人系列的页面,每次的切换不可避免地要来服务器走一个来回。图2 3 为 a j a x 应用的生命周期。从图上可以看出,服务器交付一个客户端应用给浏览器,这个 太原理工大学硕士研究生学位论文 应用独立处理很多的用户交互,对于自己无法独立处理的交互,应用会以后台方式发送 请求给服务器,而不打断用户的操作流程。 图2 - 2 传统w e b 应用生命周期3 1 f i g2 - 2c l a s s i cw e ba p p l i c a t i o nl i f e c y c l e 2 2 ix m l h t t p r e q u e s t 对象 图2 - 3a j a x 应用生命周期f 3 1 f i g2 - 3a j a xa p p l i c a t i o nl i f e c y c l e x h r ( x m l h t t p r e q u e s t ) 最早是在m5 o 中实现的,主要是通过a c t i v e x 组件来创建 一个x h r 对象,由于它只能在m 中使用,所以大多数开发人员都没有采用x h r 对象。 但是现在m o z i l l a1 0 和s a f a r i1 2 已把它列为事实上的标准。w 3 c 组织虽然并没有将 x h r 列入标准,但是它的大部分功能已经涵盖在d o ml e v e l3 加载和保存规约( d o m l e v e l3b a da n ds a v ef i r e f o x ,s a f a r i ,s p e c i f i c a t i o n ) 这一新的提案中。所以它的大部分方 法都可以在o p e r a , k o n q u e r o r 和i n t e m e te x p l o r e r 中得到实现,这样就保证了a j a x 在各 个不同浏览器之间的通用性。 a j a x 的核心是j a v a s c r i p t 对象x h r ,是a j a x 引擎解决无需刷新整个页面就可以 从服务器获取数据的关键所在。该对象在i n t e r n e te x p l o r e r5 中首次引入,是一种支持异 步请求的技术。简而言之,x h r 为运行于浏览器中的j a v a s c r i p t 脚本提供了一种在页面 之内与服务器通信的手段。页面内的j a v a s c r i p t 可以在不刷新页面的情况下从服务器获 取数据,或者向服务器提交数据。x h r 的出现为w e b 开发提供了一种全新的可能性, 8 太原理工大学硕士研究生学位论文 甚至整个改变了人们对于w e b 应用由什么来组成的看法,它可以使我们以一种全新的 方式来做w e b 开发,为用户提供更好的交互体验。 在微软平台下x h r 是x m l h i q m 组件一个对象,它通过允许开发人员在w e b 页面内部使用x m l h t l l aa c t i v e x 组件扩展自身的功能,开发人员可以不用从当前的 w e b 页面导航而直接传输数据到服务器上或者从服务器取数据。它帮助减少了无状态连 接的痛苦,还可以排除下载冗余数据的需要。在其他w e b 浏览器平台下,例如m o z i u a , k o n q u e r o r 和o p e r a ,也创建自己的x m l 代理类- - x m l h t t p r e q u e s t 类。对于大多数情 况,x h r 对象和x m l h i i p 组件很相似,方法和属性也类似,如表2 一l 、2 2 所示: 表2 1x m l h t t p r e q u e s t 对象方法 t a b l e2 - 1x m l h t t p r e q u e s to b j e c tm e t h o d s 方法描述 a b o r t 停止当前请求 g e t a l l r e s p o n s e h e a d e r s 返回完整的h e a d s ,字符串类型 g e t r e s p o n s e h e a d e r 返回单个h e a d e r 标签,字符串类型 o p e n 设置请求目标u r l ,方法和其他参数 s e n d 发送请求 s e t r e q u e s t h e a d e r 设置h e a d e r 并和请求起发送 表2 - 2x m l h t t p r e q u e s t 对象属性 t a b l e2 - 2x m l h t t p r e q u e s to b j e c tp r o p e r t i e s 属性描述 o n r e a d y s t a t e c h a n g e状态改变的事件触发器 r e a d y s t a t e对象状态 o 一未初始化 1 一读取中 2 一己读取 3 一交互中 4 一完成 r e s p o n s e t e x t服务器返回的文本 r e s p o n s e x m l服务器返回的兼容d 0 b t 的x 札对象 s t a t u s 服务器返回的状态码,如 4 0 4 一文件未找到 2 0 0 一成功 s t a t u s t e x t 服务器返回的状态文本信息 基于a j a x 的应用具有如下优点: 9 太原理工大学硕士研究生学位论文 ( 1 ) 减轻服务器的负担。a j a x 的原则是“按需取数据”,最大程度地减少冗余的请求 和响应对服务器造成的负担,同时a j a x 可以把原来需要服务器做的许多事情放到客户 端来做。 ( 2 ) 无刷新更新页面,减少用户等待时间。当要读取大量的数据时,不会出现自屏或 访问超时的情况。在数据的读取过程中,用户所面对的是原来的页面内容。只有当数据 接收完毕之后才更新相应部分的内容,而这种更新是瞬间的。 ( 3 ) 带来更好的用户体验。由于用户等待时间的减少,提高了用户网络体验的质量。 ( 4 ) 充分利用资源。把一些传统方式下由服务器负担的工作转移到客户端,利用客户 端闲置的能力来处理数据,减轻服务器和网络的负担,节约带宽成本。 ( 5 ) 可以调用外部数据。 ( 6 ) 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。 ( 7 ) 进一步促进页面呈现和数据的分离。a j a x 在整个w e b 服务系统的位置决定了 a j a x 引擎只要从服务端获取x m l 或者其他格式的数据,便可定制整个w e b 界面。从 而可以使得服务端注重数据逻辑处理而不必关心w e b 界面的呈现,将数据呈现的工作 交给a j a x 引擎来做,这样有利于分工合作、减少非技术人员对页面的修改造成的w e b 应用程序错误、提高效率,更加适用于现在的分布式系统。 2 2 2x m u x s i j x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) ,它具有一种开放的、可扩展 的、可自描述的语言结构。它是用来描述数据结构的一种语言,它使对某些结构化数据 的定义更加容易,并且可以通过他和其他应用程序交换数据。 x m l 是从s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ,通用标识语言标准) 发展 出来的,它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结 构,主要用于大量高度结构化数据和其他各种工业领域,利于分类和索引。 x m l 是s g m l 的简化版,是w 3 c 组织于1 9 9 8 年2 月发布的标准,其目的是为了 规范互联网上数据交换的格式,以遵循统一的标准。它在s g m l 基础上,去掉语法定义 部分,适当简化d t d 部分,并增加了部分互联网的特殊部分。因此,x m l 也是一种置 标语言,基本上是s g m l 的一个子集。因为x m l 是一种树状结构,可以把形式与内容 1 0 太原理工大学硕士研究生学位论文 彻底分离,正是基于这个原因,可以使用x m l 将不同数据格式的数据进行转换,从而 达到数据交换的目的。 x s l t ( e x t e n s i b l es t y l es h e e tl a n g u a g et r a n s f o r m a t i o n s ,扩展样式表转换语言) ,它是 用来转换x m l 文档结构的语言,它可以把x m l 文档转化为另一文档形式( 如h t m l ) 。 在1 9 9 9 年1 1 月1 6 日w 3 c 组织正式发布x s l1 0 推荐版本。x s l t 是基于x m l 的, 它本身符合x m l 本身的语法规范。 x m l 非常适合于在异构环境下的数据交换,很好的实现内容与数据的分离,从而 在i n t e r n e t 领域得到广泛的应用,如w e bs e r v i c e s ,数据传输与数据交换,以及各种配 置文件的描述等。而在a l a x 中大多数情况下也是使用x m l 来实现服务端与客户端的 通信。 2 2 3c s s c s s ( c a s c a d i n gs t y l es h e e t s ,层叠样式表) ,它是由w 3 c 组织与1 9 9 4 年创建的,并在 w e b 中得到广泛的应用。w 3 c 在1 9 9 6 年1 1 月推荐使用c s s ,并批准了c s sl 级规范。 c s s l 级规范说明了用于h t m l 页面的属性。这些属性代替了传统的字体标签和其他“样 式”标记。1 9 9 8 年5 月,w 3 c 批准了c s s 2 级规范,将一些附加功能添加到1 级规范, 并引进了定位属性。这些属性代替了表格标签普遍的用法,用来设计页面元素的表示。 c s s 规范的最新版本是c s s2 1 ,它改进了某些属性,并删除了在当前浏览器里没有作 用或作用很小的属性。如今它已经在i n t e r n e te x p l o r e r6 ,n e t s c a p en a v i g a t o r7 ,m o z i u a , o p e r a 和s a f a r i 都得到了全面支持。 样式表提供了一种集中的方法来定义类型和显示的样式,它可以很方便的应用于页 面中各个独立的元素上。通过c s s 可以使用更丰富、更灵活的样式,可以在多个页面中 引用。 2 2 4d o m d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) ,它是w 3 c 组织的一个规约,是处理 x m l 和h t m l 的标准a p i 之一。正因为它是一个标准,所以它可以以独立于平台和语 言的方式访问和修改一个文档的内容和结构,即它对文档的处理与编程语言无关,也与 操作系统无关。 太原理工大学硕士研究生学位论文 d o m 可以动态的访问和修改文档的内容,结构和显示方式。使用d o m ,可以将整 个w e b 页面的架构变成编程的对象,通过j a v a s c r i p t 来操作它们。这样就可以使a j a x 有效的实现页面的部分加载和部分更新。 d o m 实际上是以面向对象的方式描述的对象模型。 2 2 5j a v a s c r i p t j a v a s c r i p t 是n e t s c a p e 创建的脚本语言,建立原型时本来日q 做m o c h a ,正式发布之 前曾经改名为l i v e w i r e 和l i v e s c r i p t ,最后终于确定为j a v a s c r i p t 。 j a v a s c r i p t 是一种功能强大的基于对象的脚本语言。j a v as c r i p t 程序可以直接嵌入 h t m l 页面。与w e b 浏览器定义的d o m 一起使用时,j a v a s c r i p t 可以创建动态 h t m l ( d h t m l ) 内容,允许用户与客户端的w e b 应用程序交互。使用它的目的是与 h t m l , j a v a 脚本语言一起实现在一个w e b 页面中连接多个对象,与w e b 客户端进行 交互的作用,从而可以开发客户端的应用程序。 为了保证j a v a s c r i p t 在各种宿主环境中都可以正确编译和执行,e c m a ( e u r o p e a n c o m p u t e rm a n u f a c t u r e r sa s s o c i a t i o n ,欧洲电脑厂商协会) 制定了e c m a 2 6 2 正式标准,批 准j a v a s c r i p t 作为e c m as c r i p t 规约,根据这些标准编写的页面和脚本在遵循相应原则 的任何浏览器上都应该有相同的外观和表现。 2 3 砒a r i a ( r i c hi n t e m e ta p p l i c a t i o n ,富互联网应用) 是集桌面应用程序的最佳用户界面功 能与w e b 应用程序的普遍采用,快速、低成本部署以及互动多媒体通信的实时快捷于 一体的新一代网络应用程序。 h 嘞l 只给用户提供了非常有限的界面控制元素,而r i a 的用户界面提供了灵活 多样的界面控制元素,这些控制元素可以很好的与数据模型相结合。传统模型使用线性 的设计,提供给用户一些选择,然后用户发送选择结果给服务器。这种单一的模式不符 合应用程序的灵活交互的要求和用户的意愿。频繁的服务器请求和页面刷新有很多的缺 点,包括页面打开缓慢和降低网络带宽等。如果采用富客户界面,可以从以前的服务器 响应影响整个界面,转移到只有收到请求的应用程序部分才会做出相应的变化。这本质 太原理工大学硕士研究生学位论文 上意味着界面被分解成许多独立的模块,这些模块都会对收到的信息做出相应的反应, 有些会和服务器端进行交互,有些是这些模块之间的通信。 r i a 中的富客户技术通过提供可承载己编译客户端应用程序( 以文件形式,用h 耶【p 传递) 的运行环境,客户端应用程序使用异步客

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论