已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)ajax在web开发中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕士学位论文 _ m l i l l i 摘要 a j a x 是w e b 领域的前沿技术,它提供了新的互联网交互模型,大大扩展 了w e b 应用的能力,但存在一些问题限制了a j a x 技术的应用。a j a xw e b 应 用的设计方法、模式的研究还刚刚起步,由于缺乏比较规范、成熟的设计模 式的指引,使得a j a x 的w e b 应用大多还停留在初步的尝试阶段,难以实现 a j a x 应用的深入和规范化。 本文首先深入剖析了a j a x 的技术原理及其关键技术,然后在对a j a x 应 用设计中代码管理、体系架构、通信控制、安全及性能等问题进行深入探讨 的基础上,进行了a j a x 典型设计模式的研究,引入了a j a x 设计模式的概念, 提出了动态加载、预见式缓存数据、内容分块、持久通信四个典型的a j a x 应用设计模式。从设计模式要解决什么样的设计问题、适用的典型场景、设 计思路和体系结构等多个角度,深入地阐述了各个设计模式。动态加载模式 提供了最基本的a j a x 应用设计方案;内容分块模式,通过对页面进行分块设 计,为实现复杂的页面功能,提供了通用的a j a x 页面设计模型。预见式缓存 模式,通过实现一种创新性的数据获取机制,显著地改变了w e b 应用中数据 的访问体验。持久通信模式,充分利用了a j a x 从后台进行交互的特点,在 b s 结构的现有基础上,实现了客户端与服务器之间的双向通信。 最后,利用本文提出的a j a x 设计模式,进行了c o s m e t i c ss t o r e 系统的 设计与实现。利用n e t l i m i t e r 对该系统与传统模式下相同功能的系统进行了 流量测试,在网络流量、服务器负荷、用户体验等方面进行了对比,结果表 明利用a j a x 设计模式显著地降低了系统的网络流量,减轻了服务器负荷,并 极大的改善了用户使用体验。 关键词:a j a x ;w e b 开发;异步通信;设计模式; 哈尔滨工程大学硕士学位论文 a b s t r a c t a j a xi saf r o n tt e c h n o l o g yi nt h ew e b i tp r o v i d e san e wm o d e lo fi n t e r a c t i n t e r a c t i o n , w h i c hg r e a t l ye x p 锄d c dt h ec a p a c i t yo fw e b 印p l i c 撕o n s ,b u tt h e r ea r e a l s os o m ep r o b l e m st h a tr e s t r i c tt h ea p p l i c a t i o no fa j a xt e c h n o l o g y t h er e s e a r c h o ft h ed e s i g nm e t h o da n dm o d e lo fa j a xw e bh a sj u s ts t a r t e d , t h em o s tw e b a p p l i c a t i o n so f 匀a x i sa tt h ei n i t i a le x p e r i m e n ts t a g e ,i ti sd i f f i c u l tt oa c h i e v ed e e p u s ea n ds t a n d a r d i z a t i o no ft h ea p p l i c a t i o n so fa j a xs i n c et h ea b s e n c eo fm o r e s t a n d a r d i z e da n dm a t u r ed e s i g np a t t e r n s i nt h i sp a p e r , w ef n s ta n a l y z et h ep r i n c i p l e so fa j a xa n di t sk e yt e c h n o l o g i e s , a n dt h e nr e s e a r c ho nt h et y p i c a la j a xd e s i g np a t t e r n sb a s e do nad e 印d i s c u s s i o n o fc o d em a n a g e m e n t ,a r c h i t e c t u r e ,c o m m u n i c a t i o n s c o n t r o l ,s e c u r i t y , a n d p e r f o r m a n c ei s s u e si nt h ea p p l i c a t i o no fa j a x w ep r e s e n tt h ec o n c e p to fa j a x d e s i g np a t t e r n s ,a n dp u tf o r w a r df o u rt y p i c a la j a xd e s i g np a t t e r n sw h i c ha r e d y n a m i cl o a d i n g , c a c h e - p r e d i c t a b l ed a t a , c o n t e n tp a r t i t i o n e d ,a n dp e r s i s t e n t c o m m u n i c a t i o n w ed e s c r i b e dt h ev a r i o u sd e s i g np a t t e r n so nt h ea s p e c t so ft h e p r o b l e m s ,t y p i c a ls c e n e ,b l u e p r i n ta n da r c h i t e c t u r e t h ed y n a m i cl o a d i n gm o d e p r o v i d et h em o s tb a s i ca j a xa p p l i c a t i o nd e s i g nm e t h o d s ;t h ec o n t e n tp a r t i t i o n e d m o d ep r o v i d e sac o m m o nm o d e lf o ra j a xp a g ed e s i g nb yt h ep a r t i t i o no fp a g e ; c a c h e - p r e d i c t a b l em o d ec h a n g e dt h ed a t aa c c e s se x p e r i e n c es i g n i f i c a n t l yt h r o u g h a ni n n o v a t i v em e c h a n i s mf o rd a t aa c q u i s i t i o n ;p e r s i s t e n tc o m m u n i c a t i o nm o d e r e a l i z eat w o - w a yc o m m u n i c a t i o nb e t w e e nt h es e r v e ra n dc l i e n t a tl a s t ,w ed e s i g na n di m p l e m e n tt h ec o s m e t i c ss t o r es y s t e mi nu s eo ft h e a j a xd e s i g np a t t e r nw ep r o p o s e d ,a n dt e s tt h es y s t e ma n do l ds y s t e mw i t hs a n l e f u n c t i o nb yn e t l i m i t e r c o m p a r i s o no fn e t w o r kt r a f f i ca n ds e r v e rl o a ds h o wt h a t t h ea j a xd e s i g np a t t e r nc a l lr e d u c et h en e t w o r kt r a f f i c ,s e r v e rl o a da n di m p r o v e t h eu s e re x p e r i e n c ee f f e c t i v e l y k e y w o r d s :a j a x ;w e bd e v e l o p m e n t ;a s y n c h r o n o u si n t e r a c t i o n ;d e s i g np a t t e r n ; 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用已在 文中指出,并与参考文献相对应。除文中已注明引用的内容外, 本论文不包含任何其他个人或集体己经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) :粘曼 日期:二叫年? 月,p 日 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可口在授予学位1 2 个月后口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 作者( 签字) :擞 日期: j 呷年弓月7 咱 导师( 签字) :葫“勾 1 崩拥 哈尔滨工程大学硕士学位论文 第1 章绪论 1 1 课题背景 二十世纪九十年代随着w i n d o w $ 的出现和客户端处理能力的增强,出现 了c s 架构的应用程序,它采用图形用户界面,客户端具有很强的数据操作 和事务处理能力。但随着应用程序复杂程度的不断提高,c s 架构部署成本 高、客户端软件更新和维护困难等问题逐渐显现。由于c s 架构的种种弊端, 九十年代中期,随着互联网的飞速发展,出现了b s 架构的应用程序,w e b 的广泛使用解决了c s 架构应用程序部署、更新和维护困难的问题。但是, 随着b s 结构的广泛应用,人们发现该结构也存在下列问题【1 1 : 没有做到数据的按需获取,无法实现页面部分加载和局部刷新。 服务器端压力过大,没有充分利用客户端的资源。 软件的流畅性和快捷性与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 ) 的富i n t e r a c t 应用程序出现了1 2 1 。 r i c h 的概念包含两方面,分别是数据模型 的丰富和用户界面的丰富。数据模型的丰富,是指用户界面可以显示和操作 更为复杂的嵌入在客户端的数据模型。用户界面的丰富是指全面提升的用户 界面,r i a 提供了灵活多样的界面控制元素,这些控制元素可以很好地与数 据模型相结合。“i n t e m e t ,代表应用程序方便部署。i l i a 基于b s 架构却又 能够达到与c s 架构程序相媲美的应用性能:强大的客户端处理能力和极佳 的用户体验。而a j a x 则是一种目前得到广泛认可并且不需要安装任何插件的 i l i a 技术。 2 0 0 5 年2 月,a d a p t i v ep a t h 公司的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 ”的文章【3 1 ,文章中加勒特阐述了 w e b 应用程序可以更接近于传统的桌面应用程序的观点,他引用了一些新技 术和g o o g l e 项目作为例子来说明基于桌面的用户交互模型现在如何应用于 w e b 上,讨论了如何消除“胖”客户应用与“瘦”客户应用之间的界限,并给出 了基于这种思想的交互模型,将实现这种应用的技术命名为:a j a x 。a j a x 通 过对j a v a s c r i p t 、x h t m l 和c s s 、x m l 、x s l t 等技术的综合运用,提供了 与传统w e b 开发迥然不同的w e b 设计方式,在不牺牲部署简单性的同时, 1 哈尔滨工程大学硕士学位论文 将大量应用程序的逻辑从服务端转移到客户端,交互中只交换用户需要的数 据。一方面可以更好地挖掘浏览器的潜力,实现用户体验更好、功能更加强 大的“胖”客户端应用;另一方面节省了带宽并减轻了服务器压力( 4 1 。a x 以 标准规范和成熟技术为基础,与其它砌a 技术相比:在不同的浏览器间受到 广泛支持,不需要任何插件,能够与传统的w e b 程序无缝集成。 a j a x 并不仅仅是x m l h t t p r e q u e s t 或者是异步传输、局部刷新的代言, a j a xw e b 应用体系结构与传统w e b 应用体系结构有所不同。铷a x 本身应用 于客户端,但是这种差别也扩展到了服务器端。a j a x 技术正在不断的发展, 但目前还处于试验应用阶段,离工业化的道路还有一段距离。还有很多人还 并不真正了解内a x ,有人怀疑a j a x 不过是用在浏览器中改善用户体验的小 技巧而已。a j a x 究竟是一种什么样的p j a 技术? 如何有效和规范地进行a j a x w e b 应用的设计,有无模式可循? 等等,这是人们构思a j a x 应用的时候,经 常会提出的疑问。理论认识上的模糊使刽a x 应用还处于一片“混沌状态”,种 类繁多的a j a x 开发框架和组件库的出现,在给a = j a x 的应用带来很大便利的 同时,也使得这种“混沌”更加严重。 本课题正是在这样的背景下提出来的,本文将对a j a x 技术实质进行深入 的剖析;在进一步探讨a j a x 应用基本设计理论和方法的基础上,重点进行 a j a x 应用设计模式的研究,深入探讨如何进行a j a x 应用设计的问题;最后 通过实例的开发来检验钨a x 应用的效果。 1 2 发展现状 最有名的镯a x 应用几乎都是g o o g l e 的大作,包括g m a i l 、g o o g l e s u g g e s t 、 g o o g l e m a p s 。早在2 0 0 4 年,g o o g l e 就推出了b e t a 版的g m a i l 服务,g m a i l 最为人称道的就是它的用户界面。它允许用户一次打开多个电子邮件,并且, 即便用户正在写邮件,邮件列表也能自动更新。和其他模仿桌面邮件客户端 的w e b 邮件服务相比,g m a i l 没有依赖重量级的、容易出问题的a c t i v e x 控 件和j a v a a p p l e t ,但在功能上却毫不逊色。此后,在提供更加丰富的交互性 方面,g o o g l e 走得更远。例如,当用户键入字符时,g o o g l es u g g e s t 可以为 用户提供与输入字符相符的提示;g o o g l em a p s 可以执行交互式的、可缩放 的基于位置的地图搜索,g o o g l em a p s 依赖其极好的用户体体验获得了巨大 2 哈尔滨工程大学硕士学位论文 的成功【5 】。 很多著名的公司也纷纷开始试验使用a j a x ,例如f l i c k e r 在线照片共享系 统,y o u o sw e b 操作系统,法国的n e t v i b e s 个人信息门户等。n e t v i b e s 提供 免费的在线服务,把用户喜欢的媒体、网络资源和服务集成到一个页面上。 其他类似应用有g o o g l e 个性化主页和m i c r o s o f tl i v e 个性化主页等。 在国内,新浪、网易、雅虎中国1 6 等门户网站以及一些网页游戏也开始 试验应用a j a x 技术,并取得了较好的效果。 以上这些应用大都还只能算是初步的尝试,它们仍然是瞬态应用( 偶尔 的使用) ,像g o o g l ew r e bo f f i c e :g o o g l ed o c s & s p r e a d s h e e t ,却初步展示 了a j a x 构建独占应用( 需要应付用户多个小时的持续使用) 【1 8 】的能力。随着 g o o g l ew e bo f f i c e 的不断升级,其功能、性能将逐渐完善,有朝一日或可与 m i c r o s o f to f f i c e 相媲美,由于其不需安装,随时随地使用等强大优势,或可 对m i c r o s o f to f f i c e 的垄断地位构成巨大威胁。 a j a ) 【技术的研究,主要集中在这几个方面:开发框架、组件库的研究; 领域应用的研究;设计方法、模式的研究。框架是一组协同工作的类,它们 为特定类型的软件构筑了一个可重用的设计。框架研究的成果颇丰,比如微 软的a s p n e t a j a x ,早期称为a l t a s ,其作用是对n e t 框架中a s p n e t 进行a j a x 应用扩展。还有一些比较著名的开源框架、组件库,比如d o j o ,d w r ,r i c o 等等,利用它们,开发人员可以更加高效,相对容易的构建复杂的r i a 应用, 而不必关心很多细节川。当前,局a x 在各个领域的应用研究已经成为匀a x 研 究的热点,涉及电子商务、远程教育、搜索引擎、网页游戏、网络地图等诸 多领域。 但是,q a x 设计方法、模式的研究可以说还比较弱化。a j a ) 【技术的核心 是异步通信,所有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 设计方法、模式的建立,恰能使人们在设计a j a x 的创 3 哈尔滨工程大学硕士学位论文 新性应用中想象力更加丰富。纵观a j a x 设计模式方面的著作,较多的是关于 a j a x 技术应用的一些典范和a j a x 基础设计理论方面的论述,究竟什么是a j a x 的设计模式,a j a ) 【都有哪些代表性的设计模式,这些问题仍然还很不明确。 1 3 研究内容 本文研究的主要目的是建立对a j 觚技术清晰客观的认识,完善a j a x 应 用的基础设计理论,重点研究提出最典型的几种a j a x 应用设计模式,对如何 进行a j a x 应用设计的问题进行深入探讨。理论指导实践,只有对a j a x 技术 有了正确的认识,才能在应用中做到扬长避短、有的放矢。较好的理解和掌 握a j a x 应用的一些基本设计理论,比如代码管理、数据访问、模型架构、安 全和性能控制等,是建立合理、高效的a j a x 应用的前提。而综合广泛的应用 实践,在a j a x 应用基础设计理论研究的基础上,提炼出典型的设计方法和模 式,必将在创建a j a x 的应用中起到事半功倍的效果。本文具体研究内容如下: 介绍a j a x 技术的概念,分析a j a x 较传统r i a 技术的优势,深入剖 析a j a x 的工作原理及其关键技术。 进行a j a x 应用的基础设计理论和方法的研究。对a j a x 应用设计中代 码管理、体系架构、通信控制、安全及性能等问题进行深入探讨, 进一步完善a j a x 的基础设计理论知识。 重点进行a j a x 应用的典型设计模式的研究。在上述两部分研究工作 的基础上,综合大量应用的实践,抽象提出了a j a x 应用的四类典型 设计模式;归纳总结了各设计模式所要解决的设计问题、适用的场 景,制定了各设计模式的解决方案。 在上述工作的基础上,进行a j a xw e b 应用开发的实践。通过实践, 检验a j a x 的应用效果,进一步阐述a j a x 应用的设计方法及其优点。 1 4 论文结构 本文共分为五章: 第一章:绪论。阐述了论文研究背景和意义,介绍了a j a x 技术的发展现 状,简要介绍了本文主要研究内容及论文组织结构。 第二章:a j a x 技术分析与探讨。将a j a x 与其他r i a 技术进行了比较, 4 哈尔滨工程大学硕士学位论文 分析了a j a x 的特点,深入剖析了a j a x 的工作原理及其关键技术。 第三章:a j a x 应用的基本设计理论和方法。分析了a j a x 应用中代码重 构的必要性,阐述了常见重构方法;研究了如何利用m v c 模式进行a j a x 应 用的架构设计的问题;对a j a x 的常见通信和数据访问方式进行了比较和分 析;研究了h j a x 应用的安全和性能问题。 第四章:a j a x 应用的典型设计模式研究。引入了a j a x 设计模式的概念, 提出了i j a x 的几类典型应用设计模式,即动态加载、预见式缓存数据、内容 分块、持久通信模式。详细阐述了各种模式所要解决的设计问题,应用场景 和效果,提出了较为通用的设计解决方案,分析了模式实现的要点,并举出 示例代码进行阐述。 第五章:局a x 的综合应用:c o s m e t i c ss t o r e 。实现了c o s m e t i c ss t o r e 化 妆品电子商务系统,检验了a j a x 的运用效果,进一步阐述了应用a j a x 设计 模式的方法及其优点。 5 哈尔滨工程大学硕士学位论文 第2 章a j a x 技术分析与探讨 2 。1r ia 与a j a ) ( a j a x 是- - 1 7 新的姒技术,本节将简要介绍弛、钓a ) ( 的概念及常见 几种灿技术,最后将在刽a ) 【与这些传统剐a 技术之间进行比较,阐述各 自特点。 2 。1 1rla 及a j a x 概述, ( 1 ) 姒 砒a 是将桌面型计算机软件的最佳用户界面功能特性,与w e b 应用程序 的低成本部署以及互动多媒体通信的长处集于一体,成就的一种可以提供更 直观、更有效和交互性更强的网络应用程序。 图2 1 向我们揭示了企业级应用程序经历的几次体系架构方面的重要转 变,在此过程中,客户端的表现能力有起有落【8 1 。 文9 彰貉巍申彩住 塔台蹴洛滋;彰鼢二一器瓣 图2 1r i a 的发展过程 基于主机的应用程序,应用程序提供基于文本的非图形化用户界面,只 有内部人员才能进行访问。c s 架构的缺点主要是部署成本高和客户端更新 6 哈尔滨工程大学硕士学位论文 暑宣薯| 暑宣宣;宣暑宣宣置宣i i i i i ;篁宣暑暑暑葺i 置i i 薯i i 宣暑暑暑暑昌暑i i ;暑昌宣i i 宣;宣暑葺置i i 昌置i 暑置_ i i i i 暑暑 困难。b s 架构的缺点主要是受制于h t m l 的限制,无法像c s 那样使用丰 富的效果来展示数据,用户体验比较糟糕。从c s 到b s ,这两者受限于技 术本身分别发展成了重客户端和重服务端的模式,而r i a 的出现给我们带来 重新在客户端和服务端进行更好的平衡的机会。 复杂的应用系统可能要求多次提取网页来完成一项事务处理,在某些领 域中,如医药和财务领域,这往往导致交互速度低得无法接受。r i a 实际就 是一个用户接口,较之使用h t m l 所能实现的接口,它要更加健壮,反应更 加灵敏,更加重要的一点就是它有更加令人青睐的界面 9 1 。r i a 利用相对健壮 的客户端描述引擎,这个引擎能够提供内容密集、响应速度快和图形丰富的 用户界面,此外它还能将数据缓存在客户端,从而使得用户界面,比基于 h t m l 的响应速度更快,往返与服务器的数据流量更少。 ( 2 ) a j a x a j a x 是j e s s ej a m e sg a r r e t t 在2 0 0 5 年2 月提出的,它出现在g 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 中。a j a x 不是一种新的技术,它 是建立在j a v a s c r i p t 、x h t m l 和c s s 、d o m 、x m l h t t p r e q u e s t 、x m l 等大 量成熟技术基础之上的一项综合技术,或者说是一种新的w e b 设计方式。 对于a j a x 的技术内涵,其概念的提出者g a r r e t 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 ( 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 h t m l 和c s s 实现标准化的呈现界面;使 用j a v a s c r i p t 将x h t m l 、d o m 、x m l 、x m l h t t r i r e q u e s t 绑定在一起1 1 0 i 。 2 1 2 常见的r ja 技术 下面是一些比较有实力和特点的r i a 客户端开发技术: ( 1 ) m a e r o m e d i af l a s h f l e x 从f l a s h 6 0 开始,f l a s h 就逐步具备建立窗体风格的应用程序的功能。 据m a e r o m e d i a 称己经有9 8 以上的桌面系统的浏览器都安装了m a c r o m e d i a f l a s hp l a y e r 。这使得以m a c r o m e d i af l a s hp l a y e r 为客户端的r i a 可以支持种 类广泛的平台和设备。 f l e x 是为满足开发r i a 的需求而推出的表示服务器和应用程序框架,它 7 哈尔滨工程大学硕十学位论文 可以运行于j 2 e e 和n e t 平台。f l e x 开发者使用直观的基于x m l 的m x m l 来定义丰富的用户界面。该语言由f l e x 服务器翻译成s w f 格式的客户端应 用程序,在f l a s hp l a y e r 中运行。 ( 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 的用户界面语言,来 自m o z i u a 的开源项目。x u l 可用于建立窗体应用程序,这些应用程序不但 可以在m o z i l l a 浏览器上运行,而且也可以运行在其他描述引擎上。x u l 描 述引擎都非常小,它可以使用x m l 数据也可以生成x m l 数据。x u l 优点 在于它是一种非常具有表达力和简洁的语言。x u l 的一个主要缺点在于它目 前还没有获得一个主要商业实体的支持。 ( ”j a v as w t j a v a 已经出现多年了,并且完全支持创建基于窗体的用户界面。除了j a v a 基础类( j f c s w i n g ) 中的用户界面组件之外,开发人员还可以使用来自于 e c l i p s ea r o j e c t 的s w t 工具箱和许多第三方工具箱进行开发。对于图形来说, 可以采用j a v a2 d a p h 一个非常完整且非常复杂的图形a p i 。你可以通过一 个w e b 浏览器使用j a v a 插件软件,或使用j a v a 运行时环境中的j a v aw e bs t a r t 技术来部署应用程序。使用j a v a 建立r i a 的主要缺陷是它的复杂性高以及 j a v a 浏览器插件的低市场占有率。 2 1 3a j a x 的优势 传统的r i a 程序( 以文件形式,用h t 阻传递) 编译执行,执行速度比解 释执行快,人性化程度高,界面控制好,交互性强,但缺点是大多需要安装 插件来提供可承载已编译客户端应用程序的运行环境,同时客户端下载文件 大,另外,不同的厂商和联盟往往以不同的技术路线实现r i a 技术,使各种 r i a 之间的兼容也成为个问题。 与其它r i a 技术相比,由于a j a x 采用了对浏览器全兼容的j a v a s c r i p t 语言和其它标准的w e b 开发技术,比如c s s 、x m l 、x s l t 、d o m 等无缝与 h t m l 集成,因此它可以大量使用而不需要改变现有w e b 内容,在实际应用 中,不需要安装任何插件,部署方法和通常的b s 架构应用程序完全一样, 易于被用户接受和使用【3 2 】。此外,a j a x 还可以与其它r i a 技术,如m a c r o m e d i a 8 哈尔滨工程大学硕士学位论文 f l a s h 、x 【几等联合使用,互补不足构建更强大的w e b 应用程序。 2 2a j a x 的技术原理 m h t t pl t ( s ) ;卞 ) 。二 i 竹p 瞄愀 - :墨 0 l b r o w s e rc l i e n t 抽n d 呻训予 狮翻嘲p t 酬ii 州忖字蛐 i ,枣 ,f = 幸, c l a s s i c ia j a x w e ba p p l i c a t i o nm o d e l l w e b a p p l i c a t i o nm o d e l 图2 2 a j a x 应用与传统w e b 应用模型对比 图2 2 显示了基于a j a x 的w e b 应用与传统的w e b 应用工作原理上的差异。 和传统的基于请求或应答的w e b 应用相比,a j a x 应用在客户端和服务器之间 增加了一个中间层,称为a j a x 弓l 擎,它存在于用户本地浏览器中。用户发起 的请求并不直接发送到服务器端,而是由a j a x 引擎接收,然后异步的发送到 服务器去请求数据,服务器的响应数据返回后经过h j a x 弓l 擎处理显示在用户 界面上。a j a x 引擎实际上就是一些复杂的j a v a s c r i p t 程序,这些程序通过调用 x m l h t t p r e q u e s t 对象的属性和方法来与服务器端进行数据交互,然后再通 过d o m 来解析处理x m l 文档和部分更新h t m l 页面的内容。对于用户而言, 它只是与位于本地的a j a x 弓l 擎通信,就像桌面程序一样,所以它发出h t t p 请求后,不必像传统的w e b 应用那样等待服务器的响应数据来刷新页面,而 是可以继续通过页面和服务器进行其他交互,a i a x 引擎会自动在适当的时候 向服务器请求数据并把返回的数据显示在客户端。图2 3 对传统w e b 应用同步 交互模式与a j a x 异步交互模式进行了比较。 9 哈尔滨工程大学硕士学位论文 c i a s s i cw e ba p p l i c a t i o nm o o 醚 s y n c h r o n o u s ) c h e n t : 舱r 妒妻r a j a x ”衲a p p i i c a b i o nm o d e l ( a s y n c h r o n o u s ) c l l q n 象蠢秆书特母。串铲? 。枣爿乏 ;警! 世翟翟? 一l 鼍lr 埕f ? - - - - f 嚣镪r 、噬r 雕联麟曩啊 删。坳拼嗡珥w 嬲蹦”。-p 瞩1 黑_ _ 图2 3 传统w e b 应用同步交互模式与a j a x 异步交互模式对比 传统的w e b 应用是基于整个页面的刷新,而a j a x 应用只传输和更新需要的 数据,而不用刷新整个页面,也就是通过网络传输的不是整个页面,而是用 户真正需要的数据,这样的工作模型不仅加快了用户请求的响应速度,还避 免了刷新页面带来的屏幕闪烁,其结果是使w e b 应用产生了类似桌面应用的用 户体验。 2 3a j a x 的关键技术 2 。3 。1 利用x m l h t t p r e q u e s t 实现异步通信 异步通信是指浏览器与服务器之间在后台进行的无需完整提交和加载页 面的数据交换技术。异步通信是a i 觚的技术核心,异步通信是基于浏览器内 置的x m l h t t p r e q u e a 对象实现的,通过在浏览器与服务器之间增加一个中 间层即a j a x 引擎,在a j a x 引擎中,利用x m l h t t p r e q u e s t 对象提供的一套 a p i 来异步发送客户端请求,并且负责接收处理服务器响应数据,从而达到 利用h t t p 在浏览器和w e b 服务器之间异步传递x m l 或者其他格式的数据 1 0 哈尔滨工程大学硕士学位论文 i - -i i - - m , 暑i i ;暑宣宣i 置i i 置置暑i 昌暑 的目的。 x m l h t t p r e q u s t 最早是在i e 5 0 中实现的,主要是通过a c f i v e x 组件来 创建x m l h t t p r e q u s t 对象。现在m o z i l l a l 0 和s a f a r i l 2 已把它列为事实上的 标准。w 3 c 组织虽然并没有将x m l h t t p r e q u s t 列入标准,但是它的大部分 功能已经涵盖在d o ml e v e d 加载和保存规约( d o ml e v e l 3l 0 a da n ds a v e s p e c i f i c a t i o n ) 这一新的提案中【l l 】,它的大部分方法都可以在f t r e f o x 、s a f a r i 、 o p e r a 、k o n q u e r o r 和i e 中得到实现,这样就保证了a j a x 在各个不同浏览器 之间的通用性。, 方法描述 a b o r t ( ) 停j 卜当前请求 把h t t p 请求的所有响应首部作为键 g e t a l1 r e s p o n s e h e a d e r 80 值对返回 g e t r e s p o n s e h e a d e r ( 一h e a d e r 一)返回指定首部的串值 建立对服务器的调用。m e t h o d 参数可 以是g e t 、p o s t 或p u t 。u r l 参数可以 o p e n ( ”m e t h o d ”,”u r l ) 是相对u r l 或绝对u r l 。这个方法还 包括3 个可选的参数 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 ( ) 表2 2x m l h t t p r e q u e s t 的典型属性及描述 方法描述 每个状态改变时都会触发这个事件处理器,通常会调用 o n r e a d y s t a t e c h a n g e 一个j a v a s c r i p t 函数 请求的状态。有5 个可取值:o = 未完成,1 = 正在加载, r e a d y s t a t e 2 = 已加载,3 = 交互中,4 = 完成 r e s p o n s e t e x t 服务器的响应,表示为一个串 服务器的响应,表示为x 虬。这个对象可以解析为一个 r e s p o n s e x m l d o m 对象 服务器的h t t p 状态码( 2 0 0 对应o k ,4 0 4 对应n o tf o u n d , s t a t u s 等等) s t a t u s t e x t h t t p 状态码的相应文本( o k 或n o tf o u n d 等等) x m l h t t p r e q u s t 提供了大量的属性和方法来处理客户端的请求和响应 n 2 1 ,表2 1 列出了x m l h t t p r e q u s t 典型方法。除了这些方法之外, x m l h t t p r e q u s t 对象还提供了许多属性,如表2 2 所示。处理x m l h t t p r e q u s t 哈尔滨工程大学硕士学位论文 时通过使用这些属性来表示自身的状态和服务端返回的信息。 2 3 2 利用x m l 和x s l t 进行数据交换和处理 帆x t e n s i b l em a r k u pl a n g u a g e ) 具有一种开放的、可扩展的、可自描述 的语言结构,它已经成为网络中数据和文档传输的标准。x m l 是用来描述数 据结构的一种语言,它使得某些结构化数据的定义更加容易,可以通过它来 与其他应用程序进行数据交换嗍。 在a j a x 应用中,x m l 主要应用于处理服务器返回的数据。服务器返回 的数据既可以是普通文本,也可以是x m l 形式的。x m l 是用来表示数据的, 要把数据显示出来,经常需要用到x s l t 。使用x s t l 可以比较容易的将x m l 中的数据显示出来,并可方便地控制显示格式。 x s l t ( e x t e r t s i b l es y t l e s 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 ) 。x s l t 是基于x m l 的,它本身符合x m l 本身的语法规范。在1 9 9 9 年1 1 月1 6 日 w 3 c 组织正式发布x s l t l o 推荐版本【- 4 】。 2 3 3 利用x h t m l 和c s s 实现标准化视图界面 h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ) 是描述网页最基本的文档格式语言, 从它出现发展到现在,规范不断完善,功能越来越强。但是它依然存在着一 些缺陷和不足,比如语法检查不严格,可扩展性差等,为此人们仍在不断的 改进它,使它更加便于控制和有弹性,以适应网络上日新月异的应用需求。 基于此种目的,w 3 c 组织在h t m l 和x m l 的基础上于2 0 0 0 年底公布发行 了x h t m l l 0 版本【”】。x h t m l l 0 是一种在h t m i a 0 基础上优化和改进的 新语言,其本身符合x m l 的标准。x h t m l 是一种增强了的h t m l ,它的 可扩展性和灵活性将适应未来网络应用更多的需求。 x h t m l 是w e b 标准的重要组成部分,但是x h t m l 仅仅定义w e b 结构 化方面的标准,对于w e b 表现方面的标准,必需通过c s s 来实现。 c s s ( c a s c a d i n gs t y r l es h e e t s ) ,我们常称之为风格样式单、层叠样式表, 它是用来进行网页风格设计的。通过设立样式表,可以统一控制h t m l 中各 个标志的显示属性。采用c s s 设计网页,可以有效地对页面布局、字体、颜 1 2 。 哈尔滨工程大学硕士学位论文 色、背景和其他效果实现更加精确的控制。只要对相应的代码做一些简单的 修改,就可以改变同一页面的不同部分,或者多个页面的外观和格式。c s s 在生成用户界面,以及在处理用户交互过程中起了重要作用。正是x h t m l 和c s s 的上述特性,可以使a j a x 更容易的实现数据与表现的分离。 2 3 4 利用d o m 实现动态显示和交互 d o m t , , 1 ( d o c u m e n to b j e c tm o d e l ) ,即文档对象模型,是个能够让程序及 脚本动态访问或更新文档内容、结构和样式的语言平台,它由w 3 c 组织统 - n 定相关标准,可以独立于平台和语言的方式访问和修改一个文档的内容 和结构。 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 中最基本的对象就是节点,从n o d e 派生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递业务实操手册技能测试题及答案解析
- 法律常识题库挑战及专业解答集
- 开学恐惧症测试题及答案
- 居家生活小窍门与shi用技巧手册及自测题
- T∕SAASS 274-2025 黄淮海潮土耕层结构性障碍消减与扩容 增碳技术规程
- 地质勘探现场实践题及答案手册
- 机械原理与结构测试题目及解析与答案
- T∕HBYY 0117-2025 酸枣叶提取技术规程
- 健康心理测试手册及答案指南
- 激发无限创意想象力思维测试题目集与答案详解
- 独管铁塔施工方案及流程
- 战略性矿产资源的探产供储销体系优化
- 食堂食品供销合同范本
- 中药热奄包课件
- 2025年租车合同范本下载(模板)
- 学生实习安全及突发事件应急预案
- 2025江苏海氧深冷科技有限公司招聘考察人员笔试历年备考题库附带答案详解2套试卷
- 《红日》读书分享模板
- 机械伤害事故应急演练方案(现场处置方案)
- 技术经理人考试题库及答案
- 钢结构桁架吊装安装专项施工方案
评论
0/150
提交评论