(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf_第1页
(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf_第2页
(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf_第3页
(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf_第4页
(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机软件与理论专业论文)ajax设计模式下web开发的研究与应用.pdf.pdf 免费下载

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

文档简介

中文摘要 摘要 随着w e b 应用的月益广泛和w e b 开发技术的不断发展,以用户体验型网络服 务为特征的w e b 应用代表了目前互联网的发展趋势。在w e b 应用系统架构的几次 转变中,一种新的w e b 应用交互模型被提出a i a x ( a s y n c h r o n o u sj a v a s c r i p ta n d x m l ) ,异步的j a v a s c r i p t 和x m l 。a j f i x 交互模型的出现为我们提供了一种新的 w e b 设计方法,通过对a j a x 模式的应用,不仅改变了传统w e b 应用模式,同时 也开拓了一片w e b 开发的新领域。 本文即对a j a x 模式下的w e b 开发进行研究,研究如何将a j a x 交互模型与传 统的w e b 开发相结合并有效地应用在企业级w e b 应用开发过程中。 论文工作分为三部分进行,首先是技术分析与探讨,通过分析a j a x 的技术组 成和发展现状,深入研究了a j a x 的技术特点及工作原理。其次是问题分析及解决 方案,详细分析了a j a x 与传统w e b 歼发的结合问题,提出了a j a x 开发框架与传 统w e b 开发框架的整合策略,并结合设计模式思想提出了基于经典m v c 开发模 式和远程过程调用( r p c ) 访闷方式的两种a i a x 模式下企业级w e b 开发的解决方 案。同时论文还在a j a x 对传统w e b 丌发产生的影响方面进行了深入的探讨,给出 了在实际开发过程中a j a x 应用在性能、安全、用户体验等方面的具体解决方法。 最后是a j a x 模式的实际应用部分。结合面向方面和面向对象的编程方法思想,实 现了a j a x 开发框架d o j o 、j s o n r p c 与传统w e b 开发框架s p r i n g 的整合,阐述 了在电子商务及p o r t a l 网站中基于a j a x 模式的m v c 和r p c 设计的实施过程。 通过具体的实现证明,所提出的堤计模式很好的体现厂基于a j a x 模式的w e b 应用特点,并且在性能、用户体验等方面相比传统的w e b 应用都取得了一定的效 果。但a j a x 模式下w e b 丌发的研究还存在一些需要解决的问题,a j a x 模式同样 也在不断的完善,在w e b 开发的研究过程中还需要在实鼓中不断探索。 关键词:a j a x ;r i a ;设计模式;w c ;r p c 英文摘要 r e s e a r c ha n d a p p l i c a t i o n so fw e bd e v e l o p m e n tb a s e do na j a x d e s i g np a t t e r n a b s tr a c t w i t ht h ep o p u l a r i z a t i o no fw e b a p p l i c a t i o na n dt h ec o n t i n u o u sd e v e l o p m e n to fw e b t e c h n o l o g y ,w e b - b a s e dn e t w o r ks e r v i c e sc h a r a c t e r i z e db yu s e re x p e r i e n c es t a n df o r c u r r e n tt r e n do ft h ei n t e r n e td e v e l o p m e n t d u r i n gs e v e r a lc h a n g e si nt h es t r u c t u r eo f w e ba p p l i c a t i o n s ,an e wi n t e r a c t i v ew e ba p p l i c a t i o nm o d e li sp r o p o s e d 叫q 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 b a s e d i n t e r a c t i o nm o d e lp r o v i d e san e w k i n dw e bd e s i g np a t t e r n a j a xd e s i g np a t t e r nh a sn o to n l yc h a n g e dt h et r a d i t i o n a lw e b a p p l i c a t i o np a t t e r n ,i ta l s oo p e n su pa n e wp i e c eo fw e bd e v e l o p m e n tf i e l d t h i sa r t i c l ei st os t u d ya j a x b a s e dw e ba p p l i c a t i o nd e v e l o p m e n t s t u d yh o wt o c o m b i n ea j a xm o d e lw i t ht r a d i t i o n a lw e bd e v e l o p m e n ti n e n t e r p r i s e l e v e lw e b a p p l i c a t i o na n dh o w t oe f f e c t i v e l yu s ei ti n 西e bd e v e l o p i n gp r o c e s s t h ew o r ki n c l u d e st h r e ep a r t s :f i r s t l yb yd i s c u s s i n gt h et e c h n i c a lc o m p o s i t i o na n d d e v e l o p m e n to fa j a xh a v em a d ead e e ps t u d yo fa j a x sw o r k i n gp r i n c i p l e s e c o n d l y a n a l y z et h ec o m b i n a t i o nb e t w e e na j a xa n dt r a d i t i o n a lw e bd e v e l o p m e n t , g i v et h e s t r a t e g ya b o u th o wt oi n t e g r a t ea j a xf r a m e w o r kw i t ht r a d i t i o n a lw e bf r a m e w o r k t h e a r t i c l eh a sp r o p o s e dt w ok i n d so fs o l u t i o n s :o n ei sb a s e do nc l a s s i c a lm v cd e s i g n p a t t e r n ;t h eo t h e ri sb a s e do nr p c ( r e m o t ep r o c e d u r ec a u ) a c c e s s i n gm o d e a a tt h e s a m et i m et h ea r t i c l eh a sd i s s c u e s s e dt h ea f f e c tc a u s e db ya j a xa n dg i v e ss o m ec o n c r e t e s o l u t i o n so fb a s i cp r o b l e m sa b o u tc a p a b i l i t y ,s e c u r i t ye t c t h el a s tp a r ti st h ea c t u a l a p p l i c a t i o n o fa j a x p a t t e r n a c c o r d i n g t o a s p e c t o r i e n t e d p r o g r a m m i n ga n d o b j e c t o r i e n t e dp r o g r a m m i n gr e a l i z e t h ec o m p o s i t i o no fa j a xf r a m e w o r kd o j o , j s o n r p ca n dt r a d i t i o n a lw e bf r a m e w o r ks p r i n g e x p a t i a t eh o wt o i m p l e m e n t a j a x b a s e dm v c a n dr p c d e s i g ni ne l e c t r o n i cc o m m e r c ea n d p o r t a ls i t e t h r o u g ht h ea p p l i c a t i o n sw eh a v ef u r t h e rp r o v e d :t h ed e s i g np a t t e r np r o p o s e di n t h ea r t i c l er e f l e c t st h ec h a r a c t e r i s t i co fa j a x b a s e dw e b a p p l i c a t i o n s c o m p a r e dt ot h e t r a d i t i o n a lw e ba p p l i c a t i o na j a x b a s e dw e ba p p l i c a t i o nb a s e do ut h i sk i n do fd e s i g nh a s 英文摘要 g a i n e dc e r t a i na c h i e v e m e n t si nc a p a b i l i t ya n du s e re x p e r i e n c ea s p e c t b u tt h e r ea f es t i l l p r o b l e m so a 3 a x b a s e dw e bd e v e l o p m e n t ;a 3 a xm o d e la l s oc o n t i n u a l l yp e r f e c t si t s e l f d u r i n gt h es t u d yo fw e bd e v e l o p m e n tw e s t i l ln e e dt oe x p l o r ec o n s t a n t l yi np r a c t i c e s k e yw o r d s :a j a x ;r i a ;d e s i g np a t t e r n :m v c :r p c 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:囟坚遮让搓式工盟鲤珏筮鳇班究生应用:。除论文中已经 注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明 确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表 或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:向刀劳加7 年弓月l 多日 f 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 论文作者签名:向枯导师签名:漆多到 嗍一7 年多夥日 a j a x 设计模式下w e b 开发的研究与应用 第1 章引言 1 1 研究背景 随着互联网的普及和信息技术的高速发展,w e b 应用已经成为信息时代不可 或缺的一部分。从单纯的文字信息到今天日益丰富多彩的网络世界,我们看到了 网络的强大魅力和无限潜力,从网络诞生的那天起人们对w e b 开发的探索就从未 停止过,不断丰富的w e b 开发技术给w e b 开发带来了广阔的发挥空间。 2 0 0 5 年2 月w e b 设计咨询企业a d a p t i v ep a t h 公司用户体验总监耶西j 加勒特 ( 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 ba p p l i c a t i o n s ) ) ( a i a x :w e b 应用的一种新方法) 的文章i ”。文中加勒特阐述了w e b 应用程序可 以更接近于传统的桌面应用程序的观点,他引用了一些新技术和g o o g l e 项目 ( g o o g l em a p 、g o o g l es u g g e s t 等) 作为例子来说明传统的基于桌面的用户交互模 型现在如何应用于w e b 上,讨论了如何消除胖客户( 或桌面) 应用与瘦客户( 或 w e b ) 应用之间的界限,并给出了基于这种思想的交互模型,同时将实现这种应用 的技术命名为: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 g 一词的 首次提出,由此a j a x - 迅速成为了当今w e b 开发中最为热门的词汇,w c b 开发掀 开了它崭新的一页。 a j a x 不同于以往我们所熟悉的w e b 开发技术,准确的说它并不是一种技术, 而是一系列技术的综合体,从某种角度讲它为w e b 开发提供了一种与以往传统开 发思想有着本质区别的一种w e b 应用的设计方法,即实现拥有桌面应用优点的 w e b 应用程序的一种新的开发方法。具有a i a x 设计特征的w c b 应用预示了新一 代w e b 应用的到来。 1 2 发展现状 虽然a j a x 在2 0 0 5 年2 月才被明确的提出,但在这之前大约1 0 年的传统w e b 开发过程中,开发者们始终没有停止对新的w e b 开发设计模式的追求,希望能够 使w e b 应用呈现更好的互动性和更佳的用户体验。在这过程中人们也取得了很多 第1 章引言 成果,出现了很多优秀的技术,例如i f r a r n e 、d h t m l ( d y n a m i ch t m l ) 、f l a s h 等等。但是由于这些组件自身的原因,使得它们在与服务器交互方面缺乏灵活性 和可靠性,因此一直以来都难以被企业级开发所采用,基本上只能作为页面的美 化或者小特效来使用。 随着g o o g l e 依据a j 8 x 的原理推出了g o o g l em a p ,g o o g l es u g g e s t 等一系列产 品的问世人们逐渐意识到了a j a x 的巨大魅力。人们发现这些炫目的应用实际上并 没有采用新的技术以及算法,这就使得这些新的功能和特性可以很容易的引入 w e b 开发当中,以前的w e b 开发经验也可以继续的使用和累积,需要改变的只是 在新的设计思路下做相应的调整和转变。所以自a j a x 被提出以后,各种各样的社 区和组织都在做自己的扩展和实现以各种支持a j a x 的推广。首先微软最早在自己 的n e t 框架中给出了基于a j a x 的扩展和实现,而后2 0 0 6 年2 月包括i b m 、g o o g l e 、 雅虎、甲骨文和b e a 系统等许多高科技公司宣布共同支持一个开源软件计划“o r i e l a j a x ”1 2 】全力推广a j 驭这种新兴的w e b 开发技术,值得一提的是这是自u n i x 诞生以后第一次有如此多的公司参与的计划,由此可见a j a x 的非凡影响力。 随着人们对a j a x 认识的不断深入和a j a x 的不断发展,a j a x 所涵盖的技术的 范围也变得更为广泛,例如相比最原始的a i a x 定义又加入了新的数据交换格式 j s o n :,1 、可升级矢量图像s v g 、矢量可标记语言v m l 等等。对w e b 开发而言 a j a x 已经成为一种新的设计模式,它的提出不仅是对传统的w e b 应用的巨大冲击, 同时还为w e b 开发带来了极大的挑战。同时,w e b 2 o f 4 】时代的到来,使a 醒更是 成为开发个性化、中心化和信息自主化网络应用强有力的代表技术之一。 1 3 研究意义 从最初的c s 架构到今天的b s 架构,互联网已经只益成为应用程序开发的 默认平台,越来越复杂的基于w e b 的新型服务不断冲击着我们已经习惯了的传统 w e b 应用。传统的w e b 应用程序模型从技术上来说意义非凡,但它并不适用于创 建完美的用户体验,这使得w e b 应用似乎始终无法达到桌面应用程序所拥有的功 能丰富性和响应能力。简单地让w c b 应用程序继续发展,无疑会在w e b 应用程序 a i a x 设计模式下w e b 开发的研究与应用 所提供的体验和用户从桌面应用程序获取的体验之间形成一道鸿沟。但现在这道 鸿沟正在被逐渐填平,a j a x 的出现为我们提供了一个w e b 应用开发的新理念。a j a x 充分地总结了“跨浏览器异步富客户端动态h t m l 客户服务器技术” ( c t o s s b r o w s e r - a s y n c h r o n o u s r i c h c l i e n t d y n a m i c h t m l - c l i e n t - s e r v e rt e c h n o l o g y ) , 将静态w e b 页面转变为充满交互的应用;在不牺镁w c b 应用程序部署的简单性的 同时,将“胖”客户端应用程序部署到客户端,实现表现能力更加丰富、更加智 能的客户端应用,将一直以来都期望在以前c s 架构中实现的功能迁移到现在的 b s 架构中实现,并且通过w c b 自身的优点实现更加生动的更加良好的用户体验。 从根本上讲a j a x 引发的是我们对当前w e b 应用理念的思考,而不仅仅是单纯 的技术问题。对于现行的大多数传统应用我们是该摒弃,还是该继续? 无疑,对 于传统的w e b 应用,它们在特定的时期做出了巨大的贡献,正确地分析它们的特 点和优点同时对其加以不断地改进才会真正使w c b 应用得以升华。与传统w e b 应 用程序设计相比a j a x 设计模式下的w e b 应用具有许多的不同,a j a x 处在很多学 科的交叉点上,虽然其本身应用于客户端,但是这种( 以不同方式使用这种a j a x ) 差别也扩展到了服务器端。从架构的角度来看,a j a ) 【性质的w e b 应用并不仅仅是 x m l h t t p r e q u e s t 5 域者是异步传输、无刷新- w e - b 应用的代言,通过分析我们会发 现a j a x 模式的系统架构是复杂多变的,它可以包含很多用于处理特定编码任务的 小模式( 如f a q a d e ,a d a p t e r ,o b s e r v e r ) ,也可以是一个完整的用来组织整个应 用的模式( 如m v c ) 。在对a j a x 的应用进行设计分析时,即使是对传统的m v c 模式,在加入了a j a x 性质后也发生了一些变化。a j a x 设计模式使我们从一个全新 的视角来看w e b 开发,它使人们意识到事实上前台客户端的开发也同样具有重要 的研究价值。 到目前为止a j a x 仍在不断的发展,许多相关技术层出不穷,种类繁多的新的 开发框架和组件库的出现在给a j a x 开发带来很多便利的同时,也使a j a x 的应用处 于一种混沌状态。如何将a j a x 应用于企业级的w e b 应用中,如何实现基于a j a x 模式的w e b 开发是一个非常值得研究的问题。本文意在通过对a j 题本身及其发展 状况的了解,围绕实现a j a x 架构的w e b 应用所需要解决的问题,对a j a g 应用的 第1 章引言 安全、性能等方面进行分析;结合设计模式理论,重点针对a j a x 在j a v a t mp l a t f o r m e x t e n d e de d i t i o n ( j a v ae e ) 中的应用得出a j a x 与主流w e b 应用框架相结合的解 决策略,为应用a j 积的企业级开发提供一定的理论和实践依据。 1 4 论文结构 本文一共分为七章,下面简要的介绍一下论文整体结构和每章的内容概要。 第一章是论文的背景介绍,阐述了a j a x 目前的发展状况以及课题的研究意义。 第二章主要介绍了w e b 应用中的r i a 技术,并通过对a j a x 与主流的一些r i a 技术的比较和分析,总结出了a j a x 与其他r i a 技术的关系以及其自身的优点;然 后对a j a x 开发过程中的重要辅助工具a j a x 框架进行简单的介绍。 第三章针对a j a x 对传统w e b 应用的影响以及应用a j a x 自身可能带来的一些 问题,分析a j a x 模式下的w e b 开发中需要解决的相关问题。重点分析了a j a x 与 传统w e b 开发框架的整合问题。 第四章是a j a x 设计模式下的w e b 开发解决方案,提出了基于m v c 和r p c 模式的a j a ) 【应用架构。 第五章是在第四章的基础上的具体实现,并对第三章申所分析的问题结合应 用实例给出具体的解决方法。同时对a j a x 设计模式的w e b 应用进行性能对比评测, 从量化的角度分析得出基于a j 缸的w e b 应用与传统的w e b 应用的性能对比结论。 第六章探讨a j a x 在其他方面的应用,介绍a j a x 在门户( p o r t a l ) 中的应用, 分析a a x 在p o r t a l 中的实现问题。 第七章是对本文的总结。总结论文撰写过程中的实际工作以,并对后期工作 进行了展望。 a j a x 设计模式卜w e b 开发的研究与应用 第2 章技术分析与探讨 w e b 应用程序经历了几次系统架构方面的重要转变( 见图2 1 ) ,在此过程中, 客户端的表现能力有起有落。 图2 1w e b 应用程序系统架构的转变【6 1 f i g 2 1 t h ec h a n g e so f w e b a p p l i c a t i o n a r c h i t e c t u r e 基于主机的应用程序:应用程序提供基于文本的非图形化用户界面,只有 内部人员才能进行访问; 客户机h i 务器( c l i e n t s e r v e r ,简称c s ) 应用程序:它们采用图形用户界 面,客户端的数据处理能力比较强。但由于客户端应用程序需要进行不断的更新, 因此部署成本比较高,只能为少数人所使用; 浏览器l i l t 务器( b r o w s e r s e l v e l ,简称b s ) 应用程序:w e b 的广泛使用 解决了c s 应用程序部署、和更新的困难,出现了浏览器服务器应用程序。但由 于采用了h t m l 页面形式的用户界面,客户端的数据处理能力较c s 应用程序有 所回落。 第2 章技术分析与探讨 从c s 到b s ,这两者受限于技术本身分别发展成了重客户端和重服务器端的 模式,而r i a ( r i c hi n t e m e ta p p l i c a t i o n ,即“丰富互联网应用程序”) 的出现为 c s 模式的胖客户端和b s 模式的基于浏览器的瘦客户端之间架起了桥梁【6 l 。 本章将对一些主要的r i a 技术进行介绍并通过这些r i a 技术与a j a x 的比较 探讨基于a j a x 的r i a 的优点,最后对构成a j a x 的相关技术以及a j a x 开发过程中 重要的辅助工具a j a ) 【开发框架进行简要地说明。 2 1 相关的r l 技术 r i a 是指具有高度互动性和丰富用户体验的网络应用程序。它既具有消息确 认、无刷新页面之下提供快捷的界面响应、拖放式等桌面应用程序的特点,同时 又具有部署简单、跨平台等w e b 应用程序的特点。以下是一些比较有实力和特点 的r i a 客户端开发技术。 ( i ) m a c r o m e d i af l a s h f l e x _ 7 l m a c r o m e d i a 的f l a s h f l e x 是占主导地位的一种r i a 技术。h a s h 从6 0 开始就 逐步具备了建立窗体风格的应用程序的功能。尽管f l a s h 作为一个在w e b 上最广 泛部署的前端技术还有争议,但据称已经有9 8 以上的桌面系统都支持f l a s h 。f l e x 是为满足希望开发r i a 的企业级程序员的需求而推出的表示服务器和应用程序框 架,它可以运行于j a v ae e 和n e t 平台。 ( 2 ) x u l x u l ( x m l u s e ri n t e r f a c el a n g u a g e ) 是一种基于x m l 的用户界面语言。x u l 可用于建立窗体应用程序,这些应用程序不但可以在m o z i u a 浏览器上运行,而且 也可以运行在其他描述引擎上。x u l 描述引擎都非常小,它可以使用x m l 数据 也可以生成x m l 数据。x u l 的一个主要缺点在于它目前还没有获得一个主要商 业实体的支持。x u l 最大的优点在于它是一种非常具有表达力和简洁的语言。 ( 3 ) a v a l o n m i c r o s o f t 的a v a l o n 是下一版本的w i n d o w s ( 代号”l o n g h o r n ”) 的一部分,是 一个图形和展示引擎,主要由新加到n e t 框架中的一组类集合而成。应用a v a l o n a j “设计模式下w e b 开发的研究与应用 定义的语言可以定义文本、图像和控件的布局等,与f l e x 中的m x m l 非常相似。 但基于a v a l o n 的应用程序必须运行在l o t i g l i o f n 环境中。 面对这些已有的r i a 技术,同样作为改善用户体验问题的a j a x 却一跃成为关 注的焦点,在w e b 2 0 大潮中占尽风头。通过分析a a x 的优点我们可以更好地了 解应用a i a x 的必要性。 2 2 a j a x 的优点 与其它r i a 技术相比,a j a x 的最主要的优点是可以无缝与h t m l 集成,因此 它可以大量使用而不需要改变现有w e b 内容。此外,a j a x 还可以与其它r i a 技术, 如m a c r o m e d i af l a s h 、x u l 等联合使用,互补不足成为更强大的工具。总的来说, 应用a j a x 的w e b 应用程序有很多的优点,a j a x 风格的w e b 应用会给用户带来前 所未有的用户体验,这也是为什么我们需要局a x 富客户端的一个最主要的原因, 具体来说a i 积主要有以下一些优点: ( 1 ) 技术相对稳定:a i a ) 【采用的都是现有的己经相对成熟的技术,可以相对恢 捷地将a i a x 的设计模式应用到已有的实际项目当中。 ( 2 ) 更好的用户体验:实际上用户并不希望过多的应用程序被安装在本地,随 着网络的日益普及化,如果只需要一个浏览器就可以处理所有的任务那是再好不 过了。传统的w e b 开发方式面临着一个真实的挑战就是:无力表现今天应用程序 复杂的界面。举例来说,如果想提供给客户一个报价单,在传统应用中你可能必 须打开一个页面去搜索他的历史交易记录,之后打开另一个页面看最新的价格, 还要一个页面看当前的库存,用户被强制离开当前的页面在几个页面中不停地转 换,并不复杂的业务逻辑却很容易使用户感到迷惑,应用很不方便,使系统的效 率大打折扣。但在a j a x 的应用中这种情况得到的极大地改善,a j a x 可以异步的更 新页面,使得用户在处理一个请求的时候同时可以处理其它的请求,同时可以将 以前c s 模式下开发的产品迁移到w e b 平台上,加上w e b 自身的优点a j a x 应用 的体验性和可用性自然不言而喻了。 第2 章技术分析与探讨 ( 3 ) 更快的速度:a j a x 的策略是“按需取数据”,不像传统的w c b 开发模式 基于f o r m 表单的提交然后刷新页面。从刷新整个页面和只更新局部页面来看,a j a x 的应用也会在一定程度上提高w e b 应用的响应速度。 ( 4 ) 节省服务器带宽和减轻处理负担:a i a x 允许从服务器端请求少量的信息, 而不是整个网页。它增加了页面数据的更新但却减少了页面的刷新和刷新等待, 解决了从网络自诞生就折磨着w e b 应用的问题。实际上它的本质是取消了以前需 要在服务器端做的大量工作,取而代之的是由客户端通过j a v a s c r i p t 和d o m 操作 完成数据的解析和页面的生成,减轻的服务器端的负担,使客户端与服务器端趋 于平衡。 7 ( 5 ) 旧的系统易迁移:a j a x 技术是当今w e b 应用的门面w e b 应用获得的 利益超过了桌面应用。这些利益包括部署应用的低投入、维护方便、缩短开发时 间和不需要安装。这些都是促使商业和用户自从上世纪九十年代以来采用w e b 应 用的优点。a j a ) 【技术不但能使w e b 应用获得益处,i 而且使最终用户受益。 2 3a j a x 的相关技术研究 正如在研究背景中所阐述的a j a g 是一系列技术的结合体,按照最早创造这一 词的耶西j 力口勒特的说法,a j a x 是“a s y n c h r o n o u sj a v a s c r i p t + x m l ”的缩写【9 】 但如今这一词所包含的内容已变得更为广泛,它涵盖了所有的允许浏览器与服务 器通信而无需刷新当前页面的技术。具体来说a j a x 包含了以下一些内容: 基于标准化的x h t m l 和c s s , 通过d o m ( d o c u m e n to b j e c tm o d e l ) 实现动态显示和交互, 通过x m l 和x s l 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 来整合以上所有的技术。 在本节中我们将根据a j 缸的基本原理以及其发展现状,简要地介绍一下a j a x 的技术组成。 2 3 1 基本的a j a x 技术 a j “殴计模式下w e b 开发的研究与应用 我们说a j a x 并不是哪种特定的技术,无论在组成上还是应用上都非常灵活。 图2 2 显示了一个典型的a j a x 交互过程。 客户 图2 2 典型的a j a x 交互 f i g 2 2r e q u e s t r e s p o n s ep r o c e s so f a j a x 服务器 通过这个典型的a j a x 交互过程,我们可以基本了解a j a x 的组成技术在实际应 用中的工作情况,下面对其中所涉及到的技术作一个简单介绍。 ( 1 ) x h m t l 和c s s ,它们是w 3 c 的公开标准,已经被广泛的采用在现有的 w e b 开发当中。 ( 2 ) x m l ,作为一种数据交换方式也广泛的被采用。 ( 3 ) j a v a s c r i p t ,e c m a s c r i p t ( s t a n d a r d e c m a - 2 6 2 ) 在各种场合被大量的使用, 但是它却总是遭到误解。j a v a s c r i p t 有着c 风格的语法,但是早期却存在着各种各 样的语法错误和设计,后来被各个浏览器厂商扩展的时候更是愈加混乱,以至于 现在写j a v a s c r i p t 代码时常要考虑跨浏览器的问题,从一定程度上限制了这种语言 的发展。 ( 4 ) d o m ,即d o c u m e n to b j e c tm o d e l ,是w 3 c 的规范。w 3 c 为d o m 定义了 几种语言绑定。一种语言绑定就是为特定语言定义的让您使用d o m 的a p i 。比如 可以使用为c 、j a v a 和j a v a s c d p t 定义的d o m 语言绑定,因此也可以在这些语言 中使用d o m 。这里的d o m 主要指的是在客户端的j a v a s c r i p t 对d o m 的绑定,通 第2 章技术分析与探讨 过j a v a s c r i p t 和d o m 可以即时修改用户界面、响应用户事件和输入。由于不同的 浏览器对于d o m 的实现不同,所以在d o m 事件中要特别注意跨浏览器的支持。 ( 5 ) x m l h t t p r e q u e s t 5 1 ( 简称x h r ) ,是x m l h t t p 的组件。a j a x 应用的最 重要特征,无需刷新页面便可向服务器传输或读写数据( 即无刷新更新页面) , 主要得益于x h r 对象。x h r 最早是在i e 5 中以a c t i v e x 组件形式实现的,而后 m o z i l l a 也在它的m o z i u a l 0 ( 与n e t s c a p e 7 ) 中应用了它的一个本地兼容版本。需 要说明的是x h r 并不是一个w 3 c 标准,因此虽然它的大多数方法和属性都得到 了广泛的支持,但在不同的浏览器上的表现稍有区别。主要有两种返回类型, r e s p o n s e t e x t 和r e s p o n s e x m l ,前者主要用来处理当服务器端返回为t e x t h t m l 格式 的信息,后者主要用来处理当服务器端返回t e x t x m l 格式的信息。 2 3 2 有益的扩展与补充 以上所阐述的是最初定义a j a x 时其所包括的技术,但是随着对a j a x 应用的不 断深入又有许多新的内容被引入进来。 一 ( 1 ) j s o n 3 1 ( j a v a s c n p to b j e c tn o t a t i o n ) ,在与服务器进行通信的过程中,x m l 并不是唯一的选择。x m l 的一个替代方案是j s o n 。 j s o n 是一个轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解 析和生成。j s o n 采用完全独立于语言的文本格式,但是也使用了类似于c 语言家 族的习惯。这些特性使j s o n 成为理想的数据交换语言。 j s o n 中有两种数据结构: 名值对的集合, 有键列表( k e y e di i s t ) ,或者关联数组( a s s o c i a t i v ea r r a y ) 。 j s o n 对象是无序的名,值对集合:对象以“ ”开始,“ ”结束,名值对用冒号 分隔。j s o n 数组是一个有序的值集合:以“【”开始,“】”结束,值之间使用“,” 分隔。值可以是字符串( 用双引号括起来) 、数值、t m e 、f a l s e 、n u l l 、对象或者 数组,这些结构可以嵌套。以一个e m p l o y e e 对象为例,e m p l o y e e 对象包含名、姓、 员工号和职位等数据,用j s o n 表示这一结构就为: a j a n 设计模式下w e b 开发的研究与应用 v a re m p l o y e e = ( f i r s t n a m e :j o h n , l a s t n a m e ”:d e c i , n u m b e r : 3 4 5 ,”t i t l e ”:”a c c o u n t a n t ”) j s o n 最为突出的一点就是它是轻量级的。同样地描述e m p l o y e e 对象,如果用x m l 来描述,可能如下所示: j o h n d e o 3 4 5 a c c o u n t a n t 显然j s o n 编码比x m l 编码更为简短。 此外由于j s o n 是j a v a s c r i p t 和p y t h o n 的一个子集,所以j s o n 可以直接在 j a v a s c r i p t 和p y t h o n 中进行使用。在j a v a s c r i p t 中,你可以直接将这种格式的数据 赋值给一个变量,然后通过键名取值。而如果使用x m l 作为数据交换格式,我们 需要创建一个d o m 分析器,然后通过d o m 接口访问节点对象。所以说j s o n 最 重要的贡献就是简化了解析数据的过程。 总的来说,与x m l 相比j s o n 具有以下几个优点: 浏览器解析j s o n 的速度比x m l 快; j s o n 构造是友好的编程语言,并容易转换为后端编程语言( 如j a v a ) ; j s o n 相当稳定。j s o n 的附加内容将成为超集。 ( 2 ) s v g v m l ,它们都是基于x m l 的可用来描述矢量图形的标记语言。v m l ( v e c t o rm a r k u pl a n g u a g e ) 是一个最初由m i c r o s o f t 开发的x m l 词表,使用v m l 可以在正中绘制矢量图形。s v g ( s c a l a b l ev e c t o rg r a p h i c s ) 是种基于x m l 的 开放的矢量图形描述语言。使用s v g 可以在网页上显示出各种各样的高质量的矢 量图形,可以实现如几何图形、动画、渐变色、滤镜效果等功能。将s v g 和v m l 引入a j a x 可以实现更高质量的图像和图形交互界面,满足更高的应用需求。应用 s v g v m l 使a j a g 的功能进步得到扩展,能够实现显示像在c s 架构下的动态 的图形的应用【s j 。 第2 章技术分析与探讨 2 4 当前主要的a j a x 框架 自1 9 6 8 年软件复用的思想提出,框架、设计模式、构架等各种软件复用的技 术就渐渐渗透进了企业级开发当中。考察目前的a j a 】【社区,a j a x 框架这一领域正 处在一个非常活跃的发展阶段,很多社区和组织都积极地参与其中,并很快的推 出了大量的支持a j a x 的库和组件。 实现a j a x 的滩点之一是难以编写良好的跨浏览器的j a v a s c r i p t 。应用a j a x 框 架可以很大程度地减少因大量使用j a v a s c r i p t 而带来的许多常见问题。优秀的a j a x 开发框架提供了包括:可重用的小部件、用于扩展和创建小部件的框架、事件系 统、j a v a s e r i p t 实用工具以及增强的异步服务器调用等实用功能的强大支持,大大 简化了a j a g 的开发复杂度。 事实上,由于要测试的内容太多,很难确定哪种工具包是最适合的。而且对 于所有开放源代码项目,在接下来的两年里可能将推出新的工具包。就现阶段的 发展情况来看,最有前途、设计合理的一些工具包有:d o j o t l 2 1 、r i c o l l l 】和d w r 1 4 1 。 d o j o 是首选工具包,因为它具有类似于方面的高级体系结构。d w r 或d i r e c tw e b r e n d e r i n g 提供了从客户端j a v a s c r i p t 引用基于主机的j a v a b e a n s 的方便机制。 下面对目前比较流行的一些a j a x 开发框架作一个简单的介绍。 2 4 1 跨浏览器库 通过前面的介绍可以看出,对于编写a j a x 应用,跨浏览器的支持问题是必须 要考虑的。对于客户端的一些操作:如x j r 的创建、对d o m 的操作等都会涉及 到跨浏览器不一致性的问题,目前很多库也都提供了这方面的解决。 ( 1 ) p r o t o t y p e t g l p r o t o t y p e 是为应用j a v a s c d p t 编程开发的一个通用的帮助库,其重点是通过扩 展j a v a s c r i p t 使其可以支持面向对象的程序设计。p r o t o t y p e 不仅定义了j a v a s c r i p t 的面向对象扩展还包括了d o m 操作a p i 、事件等其他扩展。p r o t o t y p e 以a j a x 对 象的形式提供对于a i a x 的支持。它最重要的价值在于围绕其发展而来的扩展库应 用非常的多,比如r i c o 、r u b y o n r a i l s 等都是在p r o t o t y p e 的基础上发展来的。 a j a x 设计模式下w e b 开发的研究与应用 ( 2 ) s a r i s s a 【1 0 l s a r i s s a 主要关注与使用j a v a s c r i p t 来操作x m l ,它以一种独立于浏

温馨提示

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

评论

0/150

提交评论