(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf_第1页
(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf_第2页
(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf_第3页
(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf_第4页
(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(通信与信息系统专业论文)基于ajax的lms系统研究与实现.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 随着网络通信与计算机技术的飞速发展,w e b 应用的种类也逐渐多样化。 传统的w e b 技术由于互动性和实时性的缺陷,已经无法满足现实的需要。然而, 由于x m l h n p r e q u e s t 技术在g o o g l e ,m i c r o s o f t 等行业公司的推动下发展成熟, 以突出互动性,实时性用户体验的a j a x 框架在2 0 0 5 年开始在i n t e m e t 上崭露 头角。a j a x 被冠以w 曲2 o 的高度,被业界公认为下代w | e b 服务的技术标准。 作为一种异步的交互方式,a j a x 采用客户端脚本与w e b 服务器交换数据,相当 于在用户和客户端之间增加一个中间层,使用户与服务器的交互异步化。a j a x 的应用与研究已经成为一大热点,并涌现出许多a j a x 框架,极大推动了a j a x 在w e b 中的应用。 本文以一个l m s 系统一“思科中国渠道大学 为背景,首先分析了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 r e b 应用中的作用以及一般的a j a x 引擎设计 方案,指出了一般a j a x 引擎设计的缺点。在这个基础上从细粒度的角度出发, 提出了以控制器为中心的a j a x 引擎设计方案,达到a j a x 应用易于维护,节约 系统资源的目的,并分析了各个功能模块的功能。 最后以思科中国渠道大学这个l m s 系统为例,在服务器端,以轻量级的架 构方案为指导,给出了服务器端的数据持久层,视图层,业务逻辑层和a j a x 与 w 曲w b r k 框架的整合的实现方案;在客户端,以控制器为中心a j a x 引擎设计方 案为指导,给出了显示视图模块,用户操作事件处理模块,w e b 远程通信模块, 数据解析模块和中心控制器模块的实现方案。再利用a j a x 的客户端加密能力, 给出了联合使用基于a j a x 的客户端与服务器端加密敏感数据,保护l m s 系统的 方案,并做测试工作:利用a j a x 程序级别的缓存原理,从提高访问速度和性能 的角度出发,给出一种客户端与服务器端联合控制版本号的方案,缓存服务器 资源。在节约网络流量的前提下提高网络信息的实时性,并做测试工作。这种 武汉理工大学硕士学位论文 利用a j a x 的l m s 系统的安全优化方案和性能优化方案,对现代基于n j a x l 拘w e b 应用和企业级应用具有很好的指导意义。 关键词:x m l h t t p r e q u e s t ;w e b 2 0 ;异步;a j a x 引擎 l i 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h es w i r l d e v e l o p m e n t o fn e t w o r kc o m m u n i c a t i o na n d c o m p u t e r t e c h n o l o g y , w e bs e r v i c e sb e c o m em o r ea n dm o r ed i v e r s i f i e d t r a d i t i o n a lw e b t e c h n o l o g yc a nn o tf u l f i l lt h er e q u i r e m e n to fm o d e mn e t w o r kd u et ol i m i t a t i o no n i n t e r a c t i o na n dr e a lt i m i n g h o w e v e r , a j a xf r a m e w o r kc o m e si n t ob e i n gi n2 0 0 5a n d b e c o m e sp o p u l a ri n2 0 0 6w i t hs t r o n gs u p p o r t sf r o mg o o g l ea n dm i c r o s o f t b a s e do n x m l h t t p r e q u e s t ,a j a xf r a m e w o r ks t r e n g t h e n so ni n t e r a c t i o na n dr e a lt i m i n ga n d i sr e g a r d e da st h es t a n d a r df o rw e bs e r v i c eo fn e x tg e n e r a t i o nw i t ht h et i t l eo f w e b 2 o t bb ea na s y n c h r o n o u sc o m m u n i c a t i o nw a y , a ja xu t i l i z e st h ed a t ae x c h a n g e b e t w e e nc l i e n t - s i d es c r i p t sa n dw e ba p p l i c a t i o n a j a xa c t sl i k eam i d d l el a y e r b e t w e e nu s e r sa n ds e r v e r , a s y n c h r o n i z i n gt h ec o m m u n i c a t i o nb e t w e e nu s e r sa n d s e r v e r t h ea p p l i c a t i o n sa n dr e s e a r c ho fa j a xh a v eb e c o m eaf o c u s a n dal o to f a j a xf r a m e w o r k sa r ec o m i n go u t ,p r o m o t i n gt h ea p p l i c a t i o no fa j a xf o rw e b a p p l i c a t i o n t h i st h e s i si sb a s e do nal m s s y s t e mn a m e dc i s c oc h i n ac h a n n e l su n i v e r s i t y , s t a r t i n gw i t ht h en e c e s s i t ya n a l y s i so fa j a xt e c h n o l o g y , w ed i c u s st h en e e do fa j a x b e c a u s eo fn e t w o r kd e l a ya n d a s y n c h r o n y a f t e rd i s c u s s i n ga j a xt e c h n o l o g yd e t a i l s , w ea n a l y z et h ea j a xa p p l i c a t i o ns c e n ea n dp r o p o s et h es c e n eo fs u i t a b l ea n dn o t s u t i t a b l ea j a xa p p l i c a t i o n ,w h i c hg u i d e sd e v e l o p e r su s i n ga j a xi nt h er e a s o n a b l e w a y s e c o n d l y , t h et h e s i sa n a l y z e st h er o l ea n dt h en o r m a la r c h i t e c t u r ed e s i g no f a j a xe n g i n ea n dg i v e st h ed i s a d v a n t a g eo fn o r m a la r c h i t e c t u r ed e s i g n f r o mt h e p e r s p e c t i v eo ff i n eg r a i n , w ep r o p o s ead e s i g np r o g r a m m eo fc o n t r o l l e r - c e n t e r e d q a xe n g i n e ,w h i c hm a k e s 刽a xa p p l i c a t i o n se a s yt om a i n t a i na n ds a v e ss y s t e m r e s o u r c e s a tl a s t ,u n d e rt h e g u i d eo fl i g h t w e i g h ta r c h i t e c t u r et h e t h e s i sg i v e st h e i m p l e m e n t a t i o no fp e r s i s t e n c el a y , v i e wl a y , b u s i n e s sl o g i cl a ya n dt h ei n t e g r a t i o no f a j a x a n dw e b w o r ko nt h es e r v e r s i d e o nt h ec l i e n t s i d e , u n d e rt h e c o n t r o l l e r - c e n t e r e d d e s i g np r o g r a m m eo fa j a xe n g i n e ,t h et h e s i sg i v e st h e i m p l e m e n t a t i o n o f s h o w i n gv i e wm o d u l e ,u s e ro p e r a t i o na c t i o np r o c e s s i n g i i i 武汉理工人学硕士学位论文 m o d u l e ,w e br e m o t ec o m m u n i c a t i o nm o d u l e ,d a t aa n a l y s i sm o d u l ea n dc e n t e r c o n t r o l l e rm o d u l e a n du s i n gt h ee n c r y p t i o na b i l i t yo fa j a xo nt h ec l i e n ts i d e ,t h e t h e s i sg i v e sap r o g r a m m eo f j o i n te n c r y p t i o nb o t ho nt h ec l i e n tb a s e do na j a xa n d s e r v e rs i d e ,w h i c hp r o t e c t sl m s s y s t e m a tl a s tw eg i v eap r o g r a m m eo fc o n t r o l l i n g t h ev e r s i o nn u m b e rb o t ho nt h ec l i e n ts i d ea n ds e r v e rs i d es t a r t i n gf r o mt h ec a l l i n g v e l o c i t ya n dp e r f o r m a n c eu s i n gp r o g r a m m ec a c h eo fa j a x ,w h i c hc a c h es e r v e r r e s o u r c e sa n de n h a n c et h er e a lt i m i n gb ys a v i n gn e t w o r kt r a f f i c t h es a f e t ya n dt h e p e r f o r m a n c eo p t i m i z a t i o np r o g r a m m e a r e g o o dg u i d a n c e f o rm o d e mw e b a p p l i c a t i o n sa n de n t e r p r i s e l e v e la p p l i c a t i o n sb a s e do na j a x k e y w o r d s :x m l h t t p r e q u e s t ,w e b 2 0 ,a s y n c h r o n o u s ,a j a xe n g i n e i v 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人 已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的 学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保 留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 嗍型叼 武汉理工大学硕士学位论文 第1 章绪论 1 1 本课题研究的背景 因特网最初是做为科学家们之间交流资料心得所用,最初,用户只是请求 一个资源,服务器再返回这个资源,什么也不动。随着互联网的发展,互联网 应用于越来越多的领域了,如电子商务,网上搜索,信息交流。以j a v a ,p h p ,n e t 为代表,互联网从早期的静态w e b 应用发展到了由动态的程序来响应用户的请 求,服务器端技术得到蓬勃发展。随着服务器端技术的成熟,b s 模式已经成 为w e b 应用的主流。客户端使用浏览器来运行服务器发送过来的信息,相对于 c s 模式来说,再也不需要在每个客户端都安装和部署针对某个特定平台的基 础软件或运行环境。只需要在服务器端部署应用程序,软件的修改和升级也全 部在服务器端完成,这使得维护w e b 应用的工作量大大减少。但b s 模式有着 它自身的缺陷。数据不是按照客户的需要准确加载,很多时候,消费者仅仅需 要更新小部分,但服务器还是将页面中所有的数据重新发送到客户端,刷新了 整个页面。这样网络资源被没用变化的数据占据,服务器发送数据的压力增大。 还有,很多计算任务其实是可以在客户端完成的,但传统的b s 要求将所有的 计算工作都放到服务器端进行,这样,服务器的计算压力大大增大。直到2 0 0 5 年,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 s 在他的文章a n e w a p p r o a c h o nw r e ba p p l i c a t i o n ) ) 提出了a i a ) 【l ( 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 f i p t 和x m l ) 这个概念。a j a x 实现了浏览器与服务器的无刷新交互, 客户端只是加载自己需要更新的数据。这样就能降低网络的流量,使得w e b 应 用就像桌面应用一样给用户良好的体验。 如今的因特网已经发生了翻天覆地的变化。互联网已经成为信息和商务的 中心,已经成为大量应用的首选平台。b l o g g e rd o n 在他的“w e b 2 0 概念诠释” 一文中提到“w e b 2 0 是以f l i c k r 、c r a i g s l i s t 、l i n k e d i n 、t r i b e s 、r y z e 、f r i e n d s t e r 、 d e l i c i o u s 、4 3 t h i n g s c o m 等网站为代表,以b l o g 、t a g 、s n s 、r s s 、w i k i 等社会软件的应用为核心,依据x m l 、a j a x 等新理论和技术实现的互联网新一 代模式。”1 2 1 毫无疑问,w e b 2 0 时代已经到来。a j a x 更是以它的优异表现成为 武汉理工大学硕士学位论文 w e b 2 0 时代代表技术。 a j a x 正越来越多的赢得市场的青睐,大量的企业都推出a j a x 的产品和相 关技术的服务。a j a x 已经发展了3 年,各种开发手段和基础框架已经比较成熟, 但是对a j a x 一些研究方面还存在诸多问题。 缺乏标准,缺乏规范。2 0 0 5 年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 引擎开发方面,由于j a v a s c r i p t 代码的复杂性以及a j a x 实现的复杂 性,导致了实现a j a x 代码开发时工作量非常大。笔者在l m s 项目研发中就估 计了大概a j a x 开发花费的时间占据了项目总体开发的一半时间。a j a x 客户端 与服务器端的通信也比较繁琐,缺乏好的通信引擎标准。而且a j a x 引擎的加载 也有比较大的开销。 安全性问题。既然a j a x 能访问服务器的资源,a j a x 工作中最重要的一个 环节就是异步的提交h t t p 请求,那么安全性问题就是必须考虑。越来越多的 交互a j a x 客户端与服务器的交互次数就让那些恶意实体很容易就能在客户端 的a j a x 代码里找到与服务器交互的脚本,从而编写恶意获得非法的数据,窃取 用户的敏感信息,攻击w e b 服务器。 性能问题。越来越多的客户端代码及其复杂,而且没用好的规划,导致用 户经常发现浏览器占据了大量的内存,严重的导致浏览器进程死掉也是一件司 空见惯的事情。脚本的运行效率实在是重要的问题,浏览器还没有预编译技术 的支持会解决速度的问题;数据较多时x m l 的效率往往还成为了一个瓶颈。 而且如果不把图片文件算进来,使用a j a x 意味着一张的页面会发送更多h t t p 请求,如果来保证这么多的h t t p 请求不会对服务器的性能产生影响显得非常 重要。 2 武汉理工大学硕士学位论文 1 2 国内外研究水平和发展现状 a j a x 是一种相当新的技术,现在还处于发展的初级阶段。在国外,目前 a j a x 已经成为了w r e b 应用的主流开发技术,大量的业界巨头已经采纳并且在大 力推动这个技术的发展。最近的动态包括: ( 1 ) i b m 、o r a c l e 、y a h o o ! 、b e a 、r e d h a t 、n o v e l l 等业界领先的公司启 动了o p e na j a x 项目【3 1 。致力于为a j a x 开发建造先进强大的的开发工具。i b m 在已经发布了o p e na j a x 项目的a j a xt o o l k i tf r a m e w o r k ( a t f ) 1 o ,是一个基 于e c l i p s ei d e 的a j a x 开发工具。 、 ( 2 ) 微软开发了自己的a j a x 框架a l t a s 4 1 ,不过主要是和服务器端他们自 己的a s e n e t 框架配合工作。 ( 3 ) s u n 虽然行动迟缓,但是也将a j a x 技术列入了j 2 e e 的蓝图中,作为 j 2 e e 技术的有益的补充。 ( 4 ) 对a j a x 发展作出贡献最大的公司无疑是g o o g l e 。早在2 0 0 4 年,他 们就推出了b e t a 版本的g m a i l 。它容许用户一次打开多个电子邮件,在用户写 邮件的时候,自动保存邮件到草稿葙,还能自动更新邮件列表。在搜索引擎方 面,g o o g l e 显然是走在最前面的。g o o g l es u g g e s t 就是被人们津津乐道的一项 功能。当人们在文本框中输入所要查询的关键词时候,它会自动给出一些关键 词的建议。它和百度的相关搜索是不一样的,g o o g l e 的相关信息是实时出现在 搜索框的下方。,随着输入的不同而出现不通的提示。它只显示l o 条,而且还 会这些关键词搜索后的结果数目。公认最优秀最复杂的a j a x 应用是g o o g l e m a p s 。由于完全基于a j a x 技术来建造g o o g l em a p s 的界面,g o o g l em a p s 提供 了远远超越其竞争对手的地图服务的交互体验。如果说g o o g l e 后台的地图技术 并不存在巨大优势的话,那么a j a x 技术和优秀的交互设计成为了他们压倒竞争 对手的最后一根稻草。最终使得g o o g l em a p s 脱颖而出,获得了用户的青睐。 国内的a j a x 发展水平较低,主要是在使用国外提供的框架来搭建自己的产 品。由于a j a x 从技术使用上确实有些复杂,涉及的内容比较多,对开发者的 技能要求和熟练度偏高。所以大部分国内对a j a x 的研究仅仅停留在来自国外研 究成果的使用上。 3 武汉理工大学硕士学位论文 1 3 本论文的研究内容 以思科中国渠道大学这个大型的项目为出发点,针对在a j a x 在架构,安全 和性能中遇到的问题,本文的研究内容如下: ( 1 ) 研究h j a x 技术的关键实现技术,引出使用a j a x 构建w r e b 应用的原因。 ( 2 ) 研究h j a x 技术的应用场景,指出a j a x 技术适合应用场景和不适合的 应用场景,找到a j a x 技术应用场合,充分利用a j a x 技术的优点而回避自身的缺 点。 ( 3 ) 分析a j a x 引擎应该具备的作用,分析h j a x 一般a j a x 引擎在设计上的 缺点,从细粒度角度出发,提出一种以控制器为中心的a j a x 引擎的设计方案, 提高a j a x 应用的可维护性,提高页面加载速度,减少冗余数据。 ( 4 ) 在a j a x 引擎讨论的基础上,讨论了基于a j a x 的l m s 系统实现,给出 了从服务器端到客户端的一揽子实现方法。 ( 5 ) 利用a j a x 客户端计算能力,给出了一种在客户端配合服务器端进行联 合加密用户敏感数据的方案,预防黑客窃取用户重要信息,攻击w e b 服务器。 ( 6 ) 利用a j a x 程序级别的缓存原理,从提供访问速度和性能的角度出发, 给出一种客户端与服务器端联合控制版本号的方案,缓存服务器资源。在节约 网络流量的前提下提高网络信息的实时性。 1 4 本论文的结构安排 第一章介绍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 一般a j a x 引擎在设计上的缺点,从细粒度角度出发,提出一种以控制器为中心 的a j a x 引擎的设计方案,提高a j a x 应用的可维护性,提高页面加载速度,减 少冗余数据。 第四章将以一个l m s 系统为例,给出了从服务器端到客户端的一揽子实现 方法。并充分利用a j a x 在客户端的灵活性特点,给出了l m s 系统安全和性能 4 武汉理工火学硕士学位论文 的优化方案。 第五章是全文的总结。总结全文,提出下一步研究的重点,展望未来的联 网客户端应用发展。 武汉理- t 大学硕士学位论文 第2 章a j a x 技术研究 2 1 使用a j a x 富客户端必要性 与传统的w r e b 应用不同,a j a x 采用异步交互过程。a j a x 在用户与服务器 之间引入一个中间媒介,从而消除了网络交互过程中的处理一等待一处理一等 待的缺点。用户的浏览器在执行任务时即装载了a j a x 引擎。a j a x 引擎【5 j 用 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 引擎来代 替产生一个h t t p 的用户动作,内存中的数据编辑、页面导航、数据校验这些 不需要重新载入整个页面的需求可以交给a j a x 来执行。从以下4 个方面来说明 w 曲应用中存在的问题。 2 1 1 网络延迟问题 因特网的目标就是要将世界上所有的计算机连接起来,形成一个全球性的 计算机资源,计算机之间可以共享资源和分担计算任务j 。如果真的能够把本 地调用和远程调用等同起来,那么所有的计算和数据传递都不用考虑计算机的 物理位置了,计算机本身只需要完成自己的计算任务就行了。 但是就目前人类科技的水平而言,网络通信仍然是一件代价较高的事情, 网络通信通常相对很慢,而且并不可靠。作为本地调用,调用者与被调用者都 是在一个封闭的环境中运行,所有的数据都存放在本地内存中,向方法内传递 数据与获得方法的返回的结果是一件非常简单快速的事情,如图2 1 : 6 武汉理工大学硕士学位论文 图2 1 本地过程调用图 本地调用的过程非常简单,本地的函数访问的资源都在本地内存中,彼此都是 直接访问的。 作为远程调用,情况就复杂多了。通信的双方都要都得为了完成远程调用 得特殊原因而在底层做许多计算。这些计算会消耗掉相对比较多得时间。 传输一段二进制得数据,中间要经过很多编码和解码,错误效验等过程。 数据最终是一段包含lo 得字节流或者字符流。在本地,调用函数将请求序列化 后使用某种协议通过物理设备发送到远程服务器端。在服务器端,字节流会被 反序列化获得请求,然后经过计算获得响应结果,这个结果还是会被序列化然 后再返回到客户端,重复这样得过程。这个过程如图2 2 : 本地模型序列化应用协议物理介质应用协议反序列化远程模型 。 7 图2 2 远程调用图 7 武汉理工大学硕士学位论文 这个交互过程很复杂,但是现代编程环境早已帮我们解决了这些问题,所 有的细节都被诸如j a v a l 7 ,n e t 这样的平台隐藏在背后。开发者只需调用响应 的接口即可。这些复杂的操作会极大的影响用户得到响应的速度。所以远程调 用和本地调用不能一样的由效率。 作为用户来说,他做的一个操作后,是希望马上得到响应的,如果时间太 长,用户会感觉到困惑,认为数据获取失败。a j f i x 在减少网络流量的方便做取 得了巨大的成功,局部刷新技术,也就是局部加载数据,这样浏览器不会因为 一点点的改动而去重新加载整个页面,而整个页面大部分都是没用变化,让w e b 应用不会做无用的网络传输。 2 1 2 异步的必要性 开发者对网络延迟的这样的情况,有些情况下是无法避免的。开发者要做 出最坏的假设,时刻注意网络流量。所以现代客户端的关注点是想办法让用户 在页面上的操作尽可能少的与网络无关,与服务器无关。 异步交互就是在这种情况下提出来。拿一个简单的注册为例来说明异步的 必要性。先看没用使用a j a x 的例子,如图2 3 : 回回 回 注册填写这册i 肛一 一发送注册i d 一卜,盖毳篓 i d 的记录是否存在: 卜l d 记录已经存在; 钿一发送错误提示; 通知用户无法注册该d i d 已经存在j 填写其他资源,如密码,生日 图2 3 同步注册图 8 武汉理工大学硕士学位论文 这是一个同步的典型例子,用户在填写好资源提交请求后,发现服务器的 错误信息,该用户名已经在数据库里注册了,那么没办法,用户只能重新来填 写。如果使用a j a x 的异步功能,情况就截然不同了,如图2 4 : 回回回 注册填写这册l d - 一发送注册i d 叫 做其他的事情,不理会验证i d 的过程 填写其他资源,如密码,生日 卜。蒜纂嚣一 7 i d 的记录是否存在: ;卜i d 记录已经存在_ 一 卜发送出错提示一 一通知鬻该t d l l 一 一i i d 已经存在 一铭嬲2 0 lid 的情况下修改 ; 图2 4 异步注册 十年来,老式的同步提交请求已经让用户习以为常,点击提交后,就是一 个空白的页面,因为网络延迟的原因或者服务器计算花费时间的原因,用户长 时间的等待,指导响应好了才能进行新的操作。但2 0 0 5 年后,越来越多的注册 都在使用异步的a j a x 作为验证方式。异步就是用户提交一个请求,不在去理会 它,马上就去干其他的事情,甚至再提交其他的请求,当第一个请求的响应成 功返回后,会在页面的某个地方给用户良好的提示。这也是w 曲2 o 时代的一个 显著特点,互联网给了用户更加良好的体验,让w e b 应用软件看起来像一个能 够进行远程通信的桌面应用软件。 2 2a j a x 的实现技术 a j a x ,即异步的j a v a s c r i p t s l 和x m l ,其实是多种技术的组合,包括 9 武汉理工大学硕士学位论文 j a v a s c r i p t 、x m l 、c s s 、x m l h t t p r e q u s t 9 1 、d o m 等许多技术。他的工作原理 就是在用户与服务器之间增加一个中间层,使用户操作与服务器响应异步化。 表2 1 给出了a j a ) ( 的关键元素。 表2 1a j a x 的关键元素 j a v a s c r i p tj a v a s c r i p t 是著名的脚本语言,用来嵌入在某种应用程序 之中,w e b 浏览器中嵌入的j a v a s c r i p t 解释器容许通过 j a v a s c r i p t 程序与浏览器的许多功能进行交互,a j a x 应用 就是使用j a v a s c r i p t 编写的。 c s sc s s 为w e b 应用提供了一种可重用的可视化样式的定义 方法,它提供了简单而又强大的方法,以一致的方式定义 和使用可视化样式。在a j a x 应用中,用户界面的样式可 以通过c s s 独立修改。 d o md o m 以一种可编程对象的形式展现浏览器显示内容的树 性结构,j a v a s e r i p t 修改d o m ,a j a x 应用程序可以在运 行时改变用户界面。 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 曲应用开发者从w e b 服务器 象以后台活动的方式获取数据。数据格式通常时x m l 。但 也可以支持任何基于文本的数据格式。a j a ) 【的异步性就 是通过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 8 x 的中心内容,它就像胶水一样,将其它技术粘 连起来。通过j a v a s c r i p t 操作d o m 来改变和刷新用户界面,不断重新组织数据 和数据的显示方式提供给用户,来实现富客户端的效果。c s s 为应用提供了一 致的外观。x m l h t t p r e q u e s t 对象则用来异步通信,在用户操作的时候提交用户 的请求并且获取最新的数据信息。图2 5 显示了这些技术是如何组合的。 l o 武汉理工大学硕士学位论文 图2 5a j a x 的主要组件图 令人高兴的是,所有的这些技术已经预先安装在绝大多数的现代w e b 浏览 器上【1 0 1 。因为所有现代的操作系统都会预先安装一个现代的浏览器。也就是说, 大多数的电脑和笔记本电脑都已经为运行a j a x 应用程序做好了准备。比如微软 的i e ,m o z i l l a 的f i r e f o x 。 2 2 1j a v a 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 代码 嵌入到h t m l 页面中,就能实现与用户的动态交互。j a v a s c f i p t 是一种弱类型 的和解释性的脚本语言,表面上的语法和c 语言比较类似。它由以下几个特点: 它是面向对象的语言。它拥有面向对象的一些面向对象的基本特点,比如 继承。可以使用许多来自于脚本运行环境所提供现成的功能。 弱类型【1 l 】。也就是说变量是没有具体的类型的。不需要将变量声明为字符 串,整形或者专门的对象。同一个对象可以使用不用的类型来赋值。比如: v a ra = 2 0 0 8 ; a = “y e a r ”; 变量a 起初是一个整形,然后使用字符串给它赋值,这样做是合法的。 安全性【1 2 】。j a v a s c r i p t 是一种弱安全的语言,它不访问本地硬盘,不能对文 武汉理工大学硕士学位论文 档进行修改和删除的操作。它所做的大部分工作集中在与d o m 的交互上。 解释型1 1 3 j 。这就表示j a v a 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 就部署好了。 在a j a x 中,j a v a s c r i p t 扮演着非常重要的角色。它起着一个胶水的作用, 将其他的技术都粘合在一起。j a v a s c r i p t 可以在运行的时候访问浏览器基本功 能,如d o m ,c s s ,x m l h t t p r e q u e s t 对象,向服务器发送请求,从而动态的 改变应用。 2 2 2d 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 i l 4 1 的制定的一 个标准,是用来访问x m l 和h t m l 等类型的文档结构。d o m 的作用就是将 服务器传来的字节流解析一个树型的结构,使得j a v a s c r i p t 等语言能够轻松访 问浏览器的特定元素。比如由这么一个h t m l 内容: 武汉理工大学 信息工程学院 通信工程 那么它的d o m 文档的树性结构就是如图2 6 这样: 1 2 武汉理工大学硕士学位论文 图2 6d o m 树形结构图 2 2 3x 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 对象是a j a x 中最核心的内容,a j a x 中最为关键的特性就 是由这个对象来完成的。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 的一个实例,然后就可以使用这个实例提供的 几个重要的方法来完成异步交互这个动作。表2 2 给出了x m l h t t p r e q u e s t 的方 法: 表2 2x m l h t t p r e q u e s t 的几个重要方法 方法解释 o p e n ( ) 建立对服务器的调用 s e n d ( ) 向服务器发送h t t p 请求 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 0 把所有的响应设置为键值对返回 g e t r e s p o n s e h e a d e r ( “h ”) 返回制定首部的值 设定制定首部的值,这个方法只有在o p e n ( ) 方法 s e t r e q u e s t h e a d e r ( “h ”,”v a l u e ”) 调用之后才能生效 几个重要的属性如表2 3 : 武汉理工大学硕士学位论文 表2 3x 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 状态改变时就会触发这个属性对应的函数 请求状态,5 个值。0 :未初始化,1 :正在加载,2 :以 r e a d y s t a t e 加载,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服务器的响应,解析为一个支持x m l 的d o m 对象 s t a t u s服务器响应的状态码 s t a t u s t e x t 服务器响应状态码响应的文本 2 2 4 异步交互的具体细节 图2 7 给出了基于a j f i x 异步交互过程: 使用匀a ) ( 的w e b 应用 应用服务器 图2 7a j a x 的与服务器交互图 ( 1 ) 客户端触发一个事件,这个事件也可能是从服务器端传送过来的脚本 所出发的,也有可能是用户的操作触发的。 ( 2 ) 创建x m l h t t p r e q u e s t 的一个实例。通过o p e n ( ) 方法建立连接,通过 s e n d ( ) 方法发送请求。 1 4 武汉理工大学硕士学位论文 ( 3 ) 向服务器发送请求。服务器端一般适应特定平台下的程序来处理请求。 ( 4 ) 大多数的应用访问企业的信息系统,比如数据库。 ( 5 ) 服务器程序将成生好的响应返回到客户端。 ( 6 ) 通过设置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 对象来的。 2 3a j a x 应用场景研究 一般使用a j a x 的目的就是改善系统性能和提高用户体验,但是同时我们也 应该清醒地认识到,a j a x 并不能适应任何一个w e b 应用或者小的w e b 应用场 景,在不适合a j a n 的场景去使用a j a x 会反而会不利于系统。只有在适合的场 合使用,才能充分发挥它的长处,改善系统性能和用户体验,绝不可以为了技术而 滥用a j a x 。a j a n 的特点在于异步交互,动态更新w e b 页面,因此它的适用范围 是交互较多,频繁读取数据的w e b 应用。所以无论采用何种方法实现引擎,其最 终的目标都是一致的,都是用户的需求,只有明确了用户的需求,才能做到有的放 矢。下面是笔者在研究就a j a x 的过程中总结出的a j a x 适合与不适合的场景。 2 3 1a j a x 适合的应用场景 ( 1 ) 表单驱动的交互场景 在w e b 应用中,填写表单是一件对用户来说非常麻烦的事情,用户在进行 诸如注册这样的操作时,经常要涉及到大量资料的填写。填写完资料以后提交 表单内容,数据会发送到服务器进行合法性的验证。比如用户的注册的i d 一般 都要求保持唯一性。如果数据验证失败,服务器需要返回失败信息,提示用户 重新填写表单。特别是现代网络的环境不是很好,用户提交表单后,等待了半 天却是一个数据输入的报错页面,用户还得重新来填写表单内容,这是非常不 好的用户体验。 使用a j a n 之后,可以使用a j a x 的x m l h t t p r e q u e s t 对象向后台发送异步的验 证请求,这个请求是a j a x 在用户操作时不知情的情况下发送出去,可以在不影 响用户操作的时候做验证工作。比如用户在注册的时候填写了用户名,然后光 标移开了用户名表单,这个时候就可以让a j a n 发送异步的验证请求,返回提示 1 5 武汉理工大学硕士学位论文 信息通知用户该用户名是否可以使用。整个过程都不需要用户点击按钮验证数 据合法性,不需要将整个页面提交到服务器,即快速又不会增加服务器的压力。 ( 2 ) 联动下拉框场景 多个级联的下拉框在w e b 应用中非常常见,比如要求用户选择出生地点这 种情况。下来框一次性显示的内容不多,但是如果下拉框级联的比较多的话, 就比较麻烦。为了不让用户在选择下拉框的内容而刷新页面,传统的方法是不 管有多少个级联的下拉框,都一次性加载所有的数据,然后将数据缓存在本地 浏览器中。这样虽然解决了操作响应速度慢、页面重载和频繁向服务器发送请 求的问题。但是也几乎所有的用户都不会用到所有的数据,即不会遍历所有的 下拉框数据。那么读取的,大量的冗余的数据都让到客户端内存中,使浏览器 消耗了大量的内存。 在使用了a j a x 技术后,这种状况就能很好的解决。服务器首先只加载第一 级下拉框的内容,其他的不做加载操作。当用户对第一级下拉框做选择操作的 时候,a j a x 就向服务器发送请求,

温馨提示

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

评论

0/150

提交评论