已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)基于ajax技术的web应用框架的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 目前,w 曲应用程序由于提供了丰富的用户界面和良好的可维护性而变得 越来越流行。但是,传统模式的w 曲应用程序面临着许多阀题,例如较低的响 应速度和较差的服务性能。因此一种新的w e b 开发技术a j a x 正在成为w e b 应 用领域的研究热点。 a i a x 技术采用了异步调用的方式,促使页面局部刷新,所以它可以仅仅向 服务器传送和接收自己所需要的数据,从而减少网络流量,并可以使w e b 应用 程序具有更高的即时响应性,更好的可交互性和更方便的个性化服务,使用户 像使用桌面应用程序一样使用w e b 应用程序。对比a p p l e t ,f l a s h 等传统的w e b 技术,h j a x 不需要专门的软件支持即可以在大多数流行测览器中直接使用。h j a x 综合利用了j a v a s c r i p t 、d o m 、x m l h t t p r e q u e s t 、x m l 等技术:j a v a s c r i p t 通过 d o m 获取请求参数的信息,并使用x m l h t t p r e q u e s t 对象来与服务器进行异步 通信,服务器处理请求后,返回普通的t e x t 或x m l ,然后浏览器使用j a v a s c r i p t 解析x m l ,并通过d o m 更新相关的u i 。 目前应用得比较广泛的w e b 设计框架大多是基于m v c 模式,它的核心思 想是将整个程序代码分成相对独立而又能协同工作的三个组成部分,即模型、 视图和控制器。它使得w e b 系统设计清晰,层次分明,可维护性及扩展性强。 若能将a j a x 技术应用到m v c 模式中,让两者相互协同工作,发挥它们各 自的优势,就能进一步优化现有的w e b 应用系统,提高系统的开发和服务性能。 如何实现a j 8 x 技术与现有的m v c 设计模式的结合,构建更高效、合理的w e b 应用框架,即是论文研究的重点内容。 论文首先对a j a x 技术的组成、实现原理、w e b 框架模型等进行了深入的 分析研究,然后讨论如何将h j a x 技术应用到m v c 模式中,分析怎样从系统框 架的角度将两者有机的融合起来,重点探讨了实现h j a x 技术的d w r 框架与基 于m v c 的s t r u t s 框架的结合。随后结合实际项目的应用,对这种基于h j a x 技 术的w e b 框架进行了总体的设计与详细的实现,其中重点讨论了怎样利用这种 框架实现w e b 应用中数据的动态提取和动态提交,实际应用证明了这种基于 i j a x 技术的w e b 应用框架具有结构清晰,执行效率高的特点。 关键词:a j a x ,异步通信,d w r ,m v c ,s t r u t s 武汉理工大学硕士学位论文 a b s t r a c t d u r i n gr e c e n ty e a r s , w e ba p p l i c a t i o n sh a v eb e c o m em o r ea n dm o r ep o p u l a r b e c a u s eo ft h ea b u n d a n tu s e ri n t e r f a c ea n df a v o r a b l em a i n t a i n a b i l i t yt h e yp r o v i d e d h o w e v e r , t h ew e ba p p l i c a t i o n so f t r a d i t i o n a lm o d ea r ef a c i n gm a n yp r o b l e m sw i t ht h e p r a c t i c e s ,e g 1 0 wr e s p o n s es p e e da n dr e l a t i v e l yp o o rs e r v i c ep e r f o r m a n c e s o ,a j a ) - an e wk i n do fw e bd e v e l o p i n gt e c h n o l o g y - - h a sg r a d u a l l yb e c o m et h eh o t s p o to ft h e w e ba p p l i c a t i o n a j a ) 【a d o p t sa s y n c h r o n o u sc a l lm e t h o dt or e a l i z ep a g e s p a a i a lr e f r e s hs oi t t a i lr e d u c en e t w o r kt r a f f i ct h r o u g ho n l ys e n d i n ga n dr e c e i v i n gt h ed a t ai tn e e d e d , p r o v i d ew e b - b a s e da p p l i c a t i o n sw i t hh i g h e ri n s t a n tr e s p o n s i b i l i t y , b e t t e ri n t e r a c t i v e a b i l i t ya n dm o r ec o n v e n i e n tc u s t o m i z a b l es e r v i c e i naw o r d , a j a xr e c r e a t e st h e s e a m l e s su s e re x p e r i e n c eo fm o s to t h e rd e s k t o pa p p l i c a t i o n s c o m p a r i n gw i t ht h e t r a d i t i o n a lw e bt e c h n o l o g i e s , e g a p p l e ta n df l a s h ,a j a xc a nb ea p p l i e dd i r e c t l yi n m o s tp o p u l a rb r o w s e r sw i t h o u ts p e c i a ls o f t w a r es u p p o r t i n ga j a xs y n t h e s i z e ss e v e r a l k e yt e c h n o l o g i e s , i n c l u d i n gj a v a s c r i p t , d o m ,x m l h t t p r e q u e s ta n dx k i l :t h r o u g h d o mj a v a s c r i p ta c c e s s e sr e q u e s tp a r a m e t e r si n f o r m a t i o na n du s e sx m l h t t p r e q u e s t t os e n dt h ea s y n c h r o n o u sr e q u e s t ,t h es e r v e rh a n d l e st h er e q u e s la n dt h e nr e t u r n o r d i n a r yt e x to rx m ld o c u m e n t ,f i n a l l yb r o w s e ru s ej a v a s c r i p te x p l a i n sx m l ,a n d d o mu p d a t e da n da d o p t e dt h er e l e v a n tu s e ri n t e r f a c e a tp r e s e n t ,m o s to fp o p u l a rw e bd e s i g nf r a m e w o r k sa r eb a s e do nt h em v c p a t t e r n t h ek e r n e lo fm v cp a t t e r ni sd i v i d i n gt h ew h o l ep r o g r a mc o d e si n t ot h r e e r e l a t i v e l yi n d e p e n d e n tp a r t sw h i c hc a nc o o p e r a t ew i t he a c ho t h e ra st e a m w o r k :m o d e l , v i e wa n dc o n t r o l l e r w i t ht h ed e s i g np a t t e r na b o v e ,t h ew e ba p p l i c a t i o ns y s t e m sh a v e c l e a r e rs t r u c t u r e s ,b e t t e rm a i n t a i n a b i l i t ya n de x p a n s i b i l i t i e s i fw ec a r la p p l yt h ea j a xt e c h n i q u ei n t ot h em v cd e s i g np a t t e r n ,m a k et h e m w o r k t o g e t h e r , i tc a nt a k ea d v a n t a g eo f b o t hp r e v a l e n c et oo p t i m i z et h ee x i s t i n gw e b a p p l i c a t i o n sa n di m p r o v et h es y s t e m ss e r v i c ep e r f o r m a n c e a n dt h ee m p h a s i so ft h i s a r t i c l ei st h ep r o b l e mh o wt or e a l i z et h es e a m l e s sc o m b i n a t i o no fa j a xa n dp r e s e n t m v cd e s i g np a t t e r n st ob u i l dm o r ee f f i c i e n ta n dr e a s o n a b l ew e b b a s e da p p l i c a t i o n f r a m e w o r k 武汉理工大学硕士学位论文 f i r s t l y , t h e a r t i c l er e s e a r c h e sa n da n a l y z e sd e e p l yi n t ot h ec o m p o n e n ta n d r e a l i z a t i o np r i n c i p l e so fa j a xa n dw e bf r a m e w o r k s e c o n d l y , i td i s c u s s e sh o wt o a p p l ya j a xi n t om v cp a t t e r n , a n a l y z e sh o wt oc o m b i n et h e ms e a m l e s s l yo nt h e p e r s p e c t i v eo ft h es y s t e m f r a m e w o r k i nt h i s p a r t ,i t f o c u s e so ne x p l o r i n gt h e c o m b i n a t i o no fd w rf r a m e w o r kw h i c hi m p l e m e n t sh j a xa n ds t r u t sf r a m e w o r k w h i c hi m p l e m e n t sm v c p a t t e r n ,t h i r d l y , w i t ht h ea p p l i c a t i o no f p r a c t i c a lp r o j e c t ,t h e a r t i c l ed e s i g n sa n di m p l e m e n t st h ew e bf r a m e w o r kb a s e do na j a xi nd e t a i l t h em o s t i m p o r t a n tp o i n to ft h i sp a r ti sd i s c u s s i n gh o w t or e a l i z et h ed y n a m i cr e q u e s t i n ga n d t h ed y n a m i cs u b m i t t i n gb yu s i n gt h i sf r a m e w o r k a n dt h ea p p l i c a t i o np r o v e st h a tt h i s k i n do f w e ba p p l i c a t i o nf r a m e w o r kb a s e do nt h eh j a xt e c h n o l o g yh a sc h a r a c t e r i s t i c s o f c l e a r e rs t r u c t u r ea n dh i g h e re f f i c i e n c y k e y w o r d s :i j a x ,a s y n c h r o n o u sc o m m u n i c a t i o n ,d w r , m v c ,s t r u t s m 武汉理工大学硕士学位论文 1 1 课题的背景及意义 第1 章绪论 如今,随着互联网被应用于越来越多的领域,互联网技术从早期的简单静 态w e b 页面发展到动态的w e b 页面,人们可以和服务器端进行信息交互,提交 数据,并由服务器运行一定的处理逻辑,处理用户数据,并将结果反馈回客户 端。服务器端的开发技术也从早期的c ( 3 i ,发展到p h p 、a s p 、j s p ,一直到最 近流行的基于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 等等;从早期的面向过程的 编程发展到面向对象编程,从简单的开发模式到成熟的模型视图控制器的 ( m v c ,m o d e l v i e w - c o n t r 0 1 ) 开发模式。 而随着服务器端开发技术的发展,b s ( b r o w s e r s e r v e r ) 的设计模式被越来 越广泛的应用,即客户端采用浏览器( b r o w s e r ) 运行,只需安装维护一个服务 器( s e r v e o 。相对于c s ( c l i e n t s e r v e r ) 模式。它不需要再考虑将应用部署到数 以千计的用户机器上,只需要在服务器上部署程序,软件升级也仅仅升级服务 端的程序,这使维护工作量大大减少。同时b s 相对于c s 来说,在数据一致 性,实时性和安全性方面都有较好的表现,所以人们越来越倾向于采用b s 模 式的设计结构。但是,随着b s 模式的广泛应用,人们发现该模式也存在下列 一些问题; ( ”没有做到数据的按需获取,无法实现页面部分加载和部分刷新。有时人 们仅仅需要从服务端获取少量数据,但服务端却将数据连同页面一起传回客户 端。就算客户端只是很小的页面调整,服务端也会将整个页面重新生成,并将 页面传回,客户端就必需重新加载整个页面。这样就加大了服务器端的负担, 增加了网络流量,浪费了网络带宽,并延长了用户的响应时间。 r 2 ) 服务器端压力过大,没有充分利用客户端的资源。b s 结构实现的是一 种瘦客户端,即将业务逻辑全部由服务端来实现,而客户端基本不实现业务逻 辑,这样所有的压力都放在服务器。随着硬件技术的更新,很多客户端具有闲 置的能力来处理一部分业务逻辑,缓解服务端的压力,但是传统的b s 结构并 不能充分调用客户端的闲置资源。 总的来说,随着w e b 应用程序复杂性越来越高,传统的w e b 应用程序已经 渐渐不能满足w e b 浏览者更高的、全方位的体验要求了,此时一种被称为r i c h 武汉理工大学硕士学位论文 i n t e m e ta p p l i c a t i o n ( r i i t ”,丰富互联网应用程序) 的具高度互动性和丰富用户体 验的网络应用程序出现了。 i l i a 的提出,为w e b 应用指明了一个方向。“r i c h ”代表功能强大,强交 互性,高用户体验。“i n t e r n e t ”,代表方便,应用程序部署方便,用户使用方便。 l u a 实际上是一种基于w 曲的c s 架构。综合了b s 模式和c s 模式的优点, 所以p d a 应用既可以提供强大的功能,让用户体验到强交互性,高用户体验, 又是基于i n t e m e t 浏览器的应用,所以,用户使用r i a 非常方便。而h j a x 则是 一种目前得到广泛认可的r i a 技术。 2 0 0 5 年2 月j e s s ej a m e sg a r r e t t 在他的文章a j a x :an e wa p p r o a c ht ow e b a p p l i c a t i o n 中提出了a 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 ) 技术1 ”,它实际上是融合了j a v a 技术、x m l 以及j a v a s c r i p t 等编程技术,可以让开发人员构建基于j a v a 技术的w e b 应用,并打破了使用页 面重载的惯例。a i a x 是使用客户端脚本与w e b 服务器交换数据的w e b 应用开发 方法。这样,w e b 页面不用打断交互流程进行重新加载,就可以动态地更新。 使用h j a x ,用户可以创建接近本地桌面应用的更丰富、更动态的w e b 用户界面。 a ,a x 本身并不是全新的技术,而是指一种集成的方法叫:包括 a s y n c h r o n o u s ( 晃e 步) 、x m l h t t p r e q u e s t 、x m l ( e x t e n s i b l em a r k u p l a n g u a g e 可扩 展标记语言) 、d o m ( d o c u m e n to b j e c tm o d e l 文档对象模型) 、j a v a s c r i p t 、 c s s ( c a s c a d i n gs t y l es h e e t s 层叠样式表1 等等。通过这些技术的集成,a i a x 实现 了浏览器与服务器无刷新交互,数据的按需获取与页面的部分加载,极大的缓 解了网络流量,同时它具有的良好的远程交互能力,使用户象使用桌菌应用程 序一样使用b s 架构的软件。 目前,在大多数b s 模式结构的w e b 应用中,为了避免页面的臃肿和维护 的困难,在中间层上采用m v c 的设计模式。所以若能充分的利用a j a x 固有的 优越性,又很好的与现有的m v c 设计模式相结合,就能够迸一步完善w e b 应 用,使得w e b 应用不仅层次分明,可重用性强,具有高的健壮性和可伸缩性, 而且具有良好、丰富的用户体验。 1 2 课题来源和研究内容 本课题来源于交通部长江航道局信息系统二期工程长江航道局航道养护 费征稽管理系统软件开发项目中的固定征稽子系统。 该子系统完成的主要功能为;涵盖长江干线的所有船舶的航道养护费的征 2 武汉理工大学硕士学位论文 稽( 包括按航次缴费和按统缴缴费) 及相关业务的综合性信息管理。 本系统基于b s 模式结构,设有一台中心服务器,而下面站点却有至少2 0 0 台机器会通过浏览器访问这台中心服务器。本系统分为许多模块,要求实现许 多逻辑复杂的业务。尤其是开票业务,会有许多的业务数据处理逻辑,若采用 传统的w e b 应用框架来设计,那么“请求响应刷新”这样的过程会很多,造成 整个页面的重新加载的次数也随之增加,这样不仅给服务器造成了相当大的压 力,而且网络流量还会大大增加,用户使用起来也会不方便。试想,开票员若 要即时的通过本系统打印收费票据,如果票据号码的验证以及各项业务数据的 验证都需要重新加载页面,那么等待的时间就可想而知了。 所以为了缓解服务器端的压力,充分调用客户端的闲置资源,并且最大程 度上减少网络流量,增强用户体验,本系统必须采用具有高度互动性和丰富用 户体验的开发技术。那么a j a x 技术无疑是首选。为了又使整个系统的层次分明, 可维护性强,同时也采用了基于m v c 模式的s t r u t s 框架。 本课题研究的主要目的是将a j a x 技术应用到现有的基于m v c 模式的s t r u t s 开发框架中,以此来解决现有的w e b 系统中传输的数据量大,客户端资源没有 有效利用的问题。以构造一个能充分利用客户端资源的w e b 应用系统。同时解 决现有的g j a x 框架没有很好解决的代码的混乱和不便于维护的问题,使系统开 发的代码变得清晰,系统变得更易维护和扩展。具体的研究内容如下: ( 1 ) 深入研究a j a x 实现的关键技术,a j a x 的异步通信机制及其w e b 框架模 型。 ( 2 ) 研究与分析a j a x 技术与现有的基于m v c 模式的s t r u t s 开发框架相结合 的w 曲应用框架。 ( 3 ) 设计与实现将a j a x 技术与现有的m v c 模式相结合,并应用于实际项目 中。 1 3 国内外发展现状 虽然a j a x 于2 0 0 5 年2 月刚刚提出,但是其基于构建胖客户端的w e b 应用 程序的特性,以及可开发友好的用户界面,良好的交互性和互操作性,使其得 到越来越多的人的青睐。并将其列入w e b 2 0 的核心技术f 4 】ow e b 20 是相对w e b 1 0 ( 2 0 0 3 年以前的互联网模式) 的新的一类互联网应用的统称,是一次从核心内 容到外部应用的革命。它以b l o g 、s n s 、r s s 、w i k i 等应用为核心,依据六度 武汉理工大学硕士学位论文 分隔理论、x m l 、x j a x 等新理论和技术实现的互联网新一代模式p 1 。 a j a x 不只是学术上的研究,也有很多公司将x j a x 应用到其企业级的开发 产品中,如g o o s 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 也在其网站 使用了x j a x 技术,用于用户图片的提交与共享,此外还有a n l a z o n 的a 9 c o m 搜索引擎等等。 2 0 0 0 年以后,随着w e b 应用的日益复杂,人们逐渐意识到,单纯依靠某 种技术多半无法达到快速开发、快速验证和快速部署的最佳境界。研究者开始 尝试着将已有的w e b 开发技术综合起来,形成完整的开发框架或应用模型,并 以此来满足各种复杂的应用需求。 m i c r o s o r 在客户端的技术集成方面走在了最前面。1 9 9 8 年时m i c r o s o f t 推 出的w i n d o w s9 8 就可以在桌面上集成w e b 页面,这实际上是将资源管理器和 w e b 浏览器的功能有效地结合了起来。2 0 0 0 年后,m i c r o s o f t 陆续推出了 m s n e x p l o r e r 和与之相关的m s n 在线服务。这一应用模型将w e b 潮览、视频点 播、邮件处理、网上游戏、在线聊天等许多种用户常用的w e b 功能集在了一个 统一的界面中。从信息利用的角度看,m s n 试图让用户在一个最舒适的环境中 获取足够的信息,这种努力的确值得人们称道。另一个与客户端技术集成相关 的例子是搜索引擎g o o g l e 在2 0 0 3 年展示给大家o o o g l e 工具栏功能。虽然g o o g l e 工具栏有炒作和广告的嫌疑,但安装o o o g l e 工具栏之后的m 浏览器将信息浏览 和信息检索有机地结合了起来,这种小小的功能改进确实是对用户的体贴和帮 助。 在w e b 服务端,2 0 0 0 年以后出现了几种主要的技术融合方式。首先,越 来越多的w e b 开发环境开始支持m v c 的设计模型,为开发者提供了全套的开 发框架。实际上,j 2 e e 和n e t 平台本身就是这种开发框架的典型代表。其次, 门户服务( p o r t a ls e r v e o 和w e b 内容管理( w e bc o n t e n tm a n a g e m e n t ) 在最近几年里 成为了应用集成的重点模型。这两种应用模型可以直接为开发者或最终用户提 供构建w e b 应用的高级平台,可以让w e b 开发和信息发布工作大为简化,在商 业软件领域,这一类应用的例子包括m i c r o s o f t 的s h a r e p o i n t ,i b m 的w e b s p h e r e p o n a l ,f i l e n e t 的w e b c o n t e n t m a n a g e r 等等。开源项目在w e b 开发框架和应用模 型方面表现得非常积极,s n t s ,j e t s p e e d , j p o r t l e t ,c o c o o n , l e n y a ,x o o p s 等都是 开源世界里与m v c 开发框架和w e b 内容管理相关的优秀解决方案。 4 武汉理工大学硕士学位论文 1 4 本文的结构安排 本文主要研究基于a j a x 的w e b 应用框架,并对与此相关的知识和应用进行 了深入的研究。全文共分为五章,其主要内容如下: 第1 章绪论:主要介绍了本课题的研究背景、课题来源及主要研究内容。 第2 章a j a x 技术的深入研究:主要分析了a j a x 技术的定义、组成、异步 通信的原理和框架的模型,并对其经典的应用进行了分析。 第3 章a i a x 技术与m v c 模式结合的w e b 框架的研究:介绍了a j a x 技术 的开发框架,重点研究了d w r 框架、s t r u t s 框架以及它们的结合模型。 第4 章基于a j a x 技术的w e b 应用框架设计和实现:介绍了系统的总体框 架设计,详细讲解了框架结合的应用与实现。 第5 章总结与展望。 武汉理工大学硕士学位论文 第2 章a j a x 技术基础 本章先介绍a j a x 技术的定义和组成a i a x 技术的关键技术,然后对a j a x 技术的 w e b 框架进行了深入的研究,重点介绍了a j a x 技术的异步通信的原理及其实现过程。 再结合基于a j a x 应用的经典案例进行分析,最后总结a j a x 技术应用的优缺点。 2 1a j a x 的定义 a j a x ,异步的j a v a s c r i p t 和x m l ,其实是多种技术的综合【6 1 ,包括j a v a s c r i p t 、 x h t m l | 7 l 和c s s 、d o m 、x m l 和x s t l 、x m l h t t p r e q u e s t 。其特点主要是: 。使用x h t m l 或c s s 标准化呈现【8 】; 。 使用d o m 实现动态显示和交互; 使用x m l 和x s l t 进行数据交换与处理i 卵( a j a x 客户端与服务器端传输的数 据也可以是文本等其他格式,但为了能够实现异构环境下的数据交换以及数 据与显示的分离,一般使用x v i l 来进行数据交互1 ; 。 使用x m l h t t p r e q u e s t 对象进行异步数据读取; 。 使用j a v a s c r i p t 绑定和处理所有数据。 a j a x 的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服 务器响应异步化。 在目前的w e b 2 0 热潮中,a j a x 正吸引着全世界的眼球,成为人们谈论最多的 技术术语。组成a j a x 的各种技术使w e b 应用的交互如f l i c k r , b a c k p a c k 和g o o g l e 在这方面已经有质的飞跃。这个术语源自描述从基于网页的w e b 应用到基于数据的 应用的转换。它使浏览器可以为用户提供更为自然的浏览体验。每当需要更新时, 客户端w e b 页面的修改是异步的和逐步增加的,这样,a j a x 在提交w e b 页面内容 时大大提高了用户界面的速度。在基于a j a x 的应用程序中没有必要长时间等待整个 页面的刷新。页面中需要更新的那部分才进行更改,如果可能的话,更新是在本地 完成的,并且是异步的。 6 武汉理工大学硕士学位论文 2 2a j a x 的实现技术 a j a x 实际并不是一门新的语言或技术,它是建构在已有技术的基础上,实际上 是几项技术按一定的方式组合在一起,这些技术在共同的协作中发挥各自的作用。 以下将分别介绍在a j a x 实现中的几项最关键的技术。 2 2 1d o m 模型 d o m 就是d o c u m e n to b j e c tm o d e l ( 文档对象模型) 的简写1 1 0 1 。它是w 3 c 组织 的一个规范,是处理x l v l l 和h t m l 的标准a p i 之一【儿j 。正因为它是一个标准,所 以它可以以独立于平台和语言的方式访问和修改一个文档的内容和结构,即它对文 档的处理与编程语言无关,也与操作系统无关。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 实际上是以面向对象的方式描述的对象模型。一个d o m 包含了三个方 面: 表示和修改文档所需的对象 。 这些对象的属性和操作这些对象的方法 。这些对象之间的关系 d o m 在内存中使用树形结构表示文档1 1 2 j ,文档元素是树的最高阶层,该元素有 一个或多个孩子节点( n o d e ) 用来表示树的分枝。在每一个节点上可以有内容( t e x t ) , 也可以有属性( a t t r i b u t e ) 。 下面的代码就表示了一个d o m 文档对象模型: 7 武汉理工大学硕士学位论文 是根( r o o t ) 节点; 、 、 是 的子( c h i l d r e n ) 节 点,互相之间是兄弟( s i b l i n g ) 节点; - f f 面才是子节点 , , 等等。如图2 1 : 图2 1d o m 文档对象的树形结构 d o m 中最基本的对象就是节点,从n o d e 派生出的几个比较重要的节点类型 有d o c u m e n t 、e l e m e n t 、a t t r i b u t e 、t e x t 等。d o c u m e n t 是d o m 树的根,它代表一个 完整的x v l l 文档:e l e m e n t 代表x m l 元素,是最常用的节点,它可以组成以它为 根的d o m 的子树。他还可以有e l e m e n t 子节点,以及拥有a t t r i b u t e 、t e x t 等子节点, 在上例中,“h e a d ”,“b o d y ”,“d i v ”等都是e l e m e n t ;a t t r i b u t e 是x m l 元素的属性, 它的父节点必然是e l e m e n t ,它的子节点有t e x t 和e n t i t y r e f e r e n c e 。在上例中,“i d ” 就是“d i v ”的属性,它有一个子节点是t e x t 类型,值为“d i v l ”;t e x t 表示节点中 的文本内容,如上例中“结构”就是节点“t i t l e ”的文本内容。 2 2 2x l v l l 技术 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 ) 的简称,是一种开放的, 可扩展的、可自描述的语言结构1 2 l 。它是用来描述数据结构的一种语言,就正如它 的名字一样。它使对某些结构化数据的定义更加容易,并且可以通过他和其他应用 程序交换数据。 象h t m l 一样,x m l 是从所有标志语言的元语一标准通用标志语言s g m l 8 武汉理工大学硕士学位论文 ( 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 ) 那里派生出来的。s g m l 是种元语言, 也可以称为一个定义诸如h t m l 等标志语言的系统。x m l 也是一种元语言,一个定 义w e b 应用的s g m l 的子集。和s g m l 一样,可以用x m l 来定义种种不同的标志 语言以满足不同的需要,特别在数据表现方面。 x m l 的基本特剧”1d 4 1 : ( 1 ) 良好的可扩展性。x m l 允许各个不同的行业根据自己独特的需要制定自己 的套标记,同时,它并不要求所有浏览器都能处理这成千上万的标记,同样也不 要求一个置标语言能够适合各个行业各个领域的应用,这种具体问题具体分析的方 法更有助于置标语言的发展。x m l 在两个意义上是可扩展的。首先,它允许开发者 创建他们自己的数据规则,有效地创建可被用于多种应用的“可扩展的”标志集。 其次,使用几个附加的标准,可以对x m l 进行扩展,这些附加标准可以向核心的 x m l 功能集增加样式、链接和参照能力。作为一个核心标准,x m l 为可能产生的 别的标准( 如数学置标语言m a t h 沮。等) 提供了一个坚实的基础。 ( 2 ) 内容与形式的分离。正如前面所说,x m l 中信息的显示方式已经从信息本 身中抽取出来,放在了“样式单”中。这样做便于信息表现方式的修改,便于数据 的搜索,也使得x m l 具有良好的自描述性,能够描述信息本身的含义甚至它们之间 的关系。 f 3 1 开放性和跨平台性。x m l 有着很强的“表述”信息的能力,并且以文本格 式存储和传输,便于用作各种不同系统之间的交流媒介,是一种非常理想的“网际” 语言。 正是x m l 所具有的上述特点,使x m l 非常适合于在异构环境下的数据交换, 很好的实现内容与数据的分离,从而在i n t e r a c t 领域得到广泛的应用,如w e b s e r v i c e s 、 数据传输与数据交换、各种配置文件的描述等等。而在a i a x 中大多数情况下也是使 用x m l 来实现服务端与客户端的通信。 2 2 3x m l h t t p r e q u e s t 对象 a j a x 的一个最大的特点是无需刷新页面便可向服务器传输或读写数据( 又称无 刷新更新页面) ,同时实现了与服务器的异步通信,这一特点主要得益于x m l h t t p 组件x m l h t t p r e q u e s t 对象。通过x m l h t t p r e q u e s t 对象可以使w e b 应用程序象 桌面应用程序一样只同服务器进行数据层面的交换,这些数据大多数采用x m l 格 式,当然也可以是文本型数据,这样客户端不需要每次都刷新界面,也不用每次将 9 武汉理工大学硕士学位论文 数据处理的工作提交给服务器来做,这样郎减轻了服务器的负担又加快了响应速度、 缩短了用户等候时问。 x m l h t t p r e q u e s t ”】最早是在i e 5 中以a c t i v e x 组件形式实现的,直到最近, m o z i l l a1 0 和s a f a r i1 2 采用它为事实上的标准,x m l h t t p r e q u e s 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 创建一个 x m l h t t p r e q u e s t 对象,由于x m l h t t p r e q u e s t 不是一个w 3 c 标准,所以可以采用多 种方法使用j a v a s c r i p t 来创建x m l h t t p r e q u e s t 实例。m 是采用a c t i v e x 来创建 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 对象时,要先判断浏览器支不支持a c t i v e x 技术,如果支持 则通过a c t i v e x 创建x m l h t t p r e q u e s t 对象,否则,将创建一个本地的j a v a s c r i p 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 在不同的浏览器上的 实现是兼容的,所以可以用同样的方式访问x m l h t t p r e q u e s t 实例的属性和方法【”i 。 x m l h t t p r e q u e s t 提供了大量的属性和方法来处理客户端的请求和响应,表2 - 1 列出了x m l h t t p r e q u e s t 典型方法1 7 1 【1 8 1 : 铲鬻;蟹荔彰缀鬻荔鬻戮鬻t 彩。缪獬镶缀鬻荔荔荔碧鞭 a b o r t ( ) 停止当前请求。 g e t a i l r e s p o n s e h e a d e r s 0 把h r r p 请求的所有响应首部作为键值对返回。 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 ( ”m e t h o d ”, u r l “) 建立对服务器的调用。 s e n d ( c o n t e n t ) 向服务器发送请求。 s e t r e q u e s t h e a d e r ( ”h e a d e r , v a l u e ”) 把指定首部设置为所提供的值。 完整的o p e n 方法应该是o p e n ( s t r i n gm e t h o d ,s t r i n gu r l ,b o o l e a na s y n c h ,s t r i n g u s e r n a m e ,s t r i n gp a s s w o r d ) :前两个参数m e t h o d 和u r i 是必须的。m e t h o d 参数可以 是g e t 、p o s t 或p u t 等;u r l 参数可以是相对的u r l ,也可以是绝对的u r l ;a s y n c h 指示 是否对服务器异步调用:u s e r n a m e 和p a s s w o r d 分别是用户名和密码。 s e n d ( c o n t e n t ) 方法是具体向服务器发出请求,如果请求声明是异步的,这个 方法就会立即返回,否则他会等到直接接收到响应为止。c o n t e n t 参数可以是d o m 对象的实例、输入流或者串,它会作为请求体的一部分发送。 s e t r e q u e s t h e a d e r ( s t r i n gh e a d e ls t r i n gv a l u e ) 有两个参数,第一个参数h e a d e r 是 首部,第二个参数v a l u e 是要在首部中放嚣的值。但是这个方法必须在调用o p e n ( 1 1 0 武汉理工大学硕士学位论文 方法后才能调用。 g e t a l l r e s p o n s e h e a d e r s o 方法的功能是返回一个串,其中包含所有响应的首部, 首部包括c o n t e n t l e n g t h , d a t e 和u r l 。g e t r e s p o n s e h e a d e r ( s t r i n gh e a d e r ) 方法与 g e t a l l r e s p o n s e h e a d e r s o 方法是对应的,不过h e a d e r 参数指定期望得到的首部的植, 并把这个值作为串返回。 除了这些方法之外,x m l h t t p r e q u e s t 对象还提供了许多属性,如表2 - 2 所示。 处理x m l h r p r e q u e s t 时通过使用这些属性来表示自身的状态和服务端返回的信息。 黪缓覆獬缓戮缀荔荔缓鬈7 狻缪甏毳飘谬荔该荔缀缓缓荔霉鬓缓 o n r e a d y s t a t e c h a n g e 状态改变时都会触发这个事件处理器,通常会调用一个 j a v a s e r i p t 函数。 r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋人教新版(PEP)六年级上册 单元提优测试卷 Unit 1 Amazing places含听力音频听力原文及参考答案
- 2026硕士国企面试题库及答案
- 2026思想宣传面试题目及答案
- 2026四川面试题目及答案
- 2026四川幼专面试题目及答案
- 2026四大演员面试题目及答案
- 2026 河北事业编医疗岗 历年真题 含答案解析
- 高中地理教资面试历年真题含答案
- 初中道法教资面试专项训练含答案
- 2026及未来5年可倾台面万能圆锯机项目可行性研究报告(市场调查与数据分析)
- 2025年公司主要负责人安全培训考试试题及答案(有一套)
- 文学概论讲义
- 河南警察学院引进高层次人才考核办法(试行)
- 医院审方中心工作制度
- 2026年中铝集团校园招聘笔试
- 专科医生如何带教全科医生课件
- 2026年春岭南版(新教材)小学美术二年级下册教学计划及进度表
- 雨课堂学堂在线学堂云《Age of Sustainable Development(SDG Academy)》单元测试考核答案
- 人保财险理赔培训
- 教育培训机构招生销售人员面试问题集
- 雕塑总体施工方案(3篇)
评论
0/150
提交评论