(计算机应用技术专业论文)基于ajax和rss商情网站的设计.pdf_第1页
(计算机应用技术专业论文)基于ajax和rss商情网站的设计.pdf_第2页
(计算机应用技术专业论文)基于ajax和rss商情网站的设计.pdf_第3页
(计算机应用技术专业论文)基于ajax和rss商情网站的设计.pdf_第4页
(计算机应用技术专业论文)基于ajax和rss商情网站的设计.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

摘要 传统的w e b 应用程序执行速度较慢,交互也受到限制,尤其是和典型的桌面 应用程序相比。为了获得新数据而不重新加载w e b 页面,虽然也曾经采用过一些 方法,但这些技术都没有很好的被支持。 随着w e b 2 0 的出现,一个过去并不被广泛支持的技术已经被越来越多的用 户所接受,它给了开发者更多的自由,开发先进的w e b 应用程序。这些通过 j a v a s c f i p t 来异步取得x m l 数据的应用程序,被称为“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 la p p l i c a t i o n s ) 。与传统w e b 应用程序相比, 它显得更像桌面应用程序。 本课题的研究目标是:利用a j a x 技术结合s t r u t s 框架,实现r i c hi n t e m e t a p p l i c a t i o n ( 即“丰富互联网应用程序”) ,并将此技术应用于商情网站中。 本文首先论述了传统w e b 应用程序的特点,针对其存在的问题,对a j a x 技术做了简要的分析,并将传统w c b 应用模型与基于a j a x 的w e b 应用模型做 了比较。接着介绍了本文涉及的另一关键技术:r s s 。主要介绍了它的发展历程、 结构、特点和应用模式。 文章重点介绍了这两种技术在武汉市舵落口大市场商情网中的应用。 网站的功能方面,本文将单纯的企业提供商品信息,同b 2 b 的功能相结合。 另外,并提供了供求信息的r s s 输出,便于访问者在r s sr e a d e r 中接收网站的 相关信息。 有了r s s 的输出,势必需要考虑r s s 的接收。目前国内外的r s s 阅读器已 经为数不少。但是它们都是客户端的软件,需要安装,局限性比较大。而在线 的r s s 阅读器却能很好的解决这一问题。 基于以上的考虑,网站给用户提供了一个在线的r s s 阅读器,即a j a xr s s r e a d e r 。方便用户在访问本网站的同时,也可使用在线的r s s 阅读器接收各方 面的信息,当然其中也包括本网站提供的供求信息的r s s 信息源。 就具体的实现而言,整个网站采用m v c 模式进行开发。w e b 层使用s t r u t s 框架技术进行构建,并在此框架的基础上结合了a j a x 技术,以达到丰富互联 网应用程序的效果。业务逻辑层采用j a v a b e a n 来实现系统的核心业务逻辑。在 数据持久化层,本文采用了s t r u t s 架构下提供的数掘库连接池建立与数据库的连 接,编写了一个工具类,用来封装查找资料源以及访问连接操作,最后创建了 一个j a v a b e a n ,用来封装数据库的相关操作。 在文章的最后,详细介绍了本系统中几个关键问题的实现,包括:利用j d o m 实现r s s 格式的输出,在线r s s 阅读器的具体实现,以及如何利用a j a x 实现 数据的唯一性校验和级联菜单。 关键字:a j a x ,r s s ,s t r u t s a b s t r a c t c o m p a r e dw i t hd e s k t o pa p p l i c a t i o n ,t r a d i t i o n a lw e ba p p l i c a t i o nr u ns l o w l y ,a n d i ti sr e s t r i c t e di ni n t e r a c t i o n i no r d e rt oa c q u i r ean e wd a t aw i t h o u tr e l o a d i n gw e b p a g e ,p e o p l ea d o p t e ds o m em e t h o d s ,b u tt h e s et e c h n i q u e sa l lh a v en o tw e l lb e e n s u p p o r t e d w i t ht h ee m e r g e n c eo fw e b 2 0 ,at e c h n i q u et h a tw a sn o ts u p p o r t e de x t e n s i v e l y h a sa l r e a d yb e e na c c e p t e db ym o r ea n dm o r eu s e r d e v e l o p i n gt h ea d v a n c e dw e b a p p l i c a t i o n ,i tg a v et h ed e v e l o p e r sg r e a t e rf r e e d o m t h ea p p l i c a t i o n st h a ta c q u i r ex m l d a t aa s y n c h r o n o u s l yb yj a v a s c r i p t ,i sc a l l e d “a j a xa p p l i c a t i o n s ”( a s y n c h r o n o l l s j a v a s c r i p ta n dx m la p p l i c a t i o n s ) c o m p a r e dw i t ht r a d i t i o n a l w e ba p p l i c a t i o n ,i t s e e m st ob ed e s k t o p a p p l i c a t i o n t h et o p i co ft h i sp a p e ri st oa c c o m p l i s hr i c hi n t e r n e ta p p l i c a t i o n ( p d a f o r s h o r t ) b yu s i n gt h es t r u t sf r a m ec o m b i n e dw i t ha j a x ,a n d u t i l i z e di ti naw e b s i t et h a t o f f e r sm a r k e tc o n d i t i o n a tf i r s t , t h i sp a p e rd i s c u s s e dt h ec h a r a c t e r i s t i c so ft r a d i t i o n a lw e ba p p l i c a t i o n , a n dg a v eab r i e f a n a l y s i st oa j a x , a n dc o m p a r e dt r a d i t i o n a lw e ba p p l i c a t i o na n dw e b a p p l i c a t i o nb a s e do na j a x a n dt h e ni t i n t r o d u c e da n o t h e rk e yt e c h n i q u e :r s s , i n c l u d i n gi t sh i s t o r y ,s t r u c t u r e ,c h a r a c t e r i s t i c sa n da p p l i c a t i o np a t t e m t h ef o c u so ft h i sp a p e ri st ou t i l i z et h et w ot e c h n i q u e si nw u h a nd u o l u o k o u m a r k e tw e b s i t e i nt h ef u n c t i o n ,t h i sp a p e rc o m b i n e dp r o v i d i n gg o o d si n f o r m a t i o nw i t hb 2 b a t t h es a m et i m e ,i ta l s op r o v i d e sr s sf e e ds ot h a tv i s i t sc a na g g r e g a t ea l lo fn e w s s o u r c e sw i t hr s sr e a d e r a n dt h e ni ti sn e e d e dt oc o n s i d e rt h ea g g r e g a t i o no fr s s t h e r ea r em a n yr s sr e a d e r sa th o m ea n da b r o a d h o w e v e r t h e ya r ea p p l i c a t i o n s t h a tu s e r ss h o u l di n s t a l lo nt h e i rc o m p u t e r t h a ti st os a y , t h e ya r el i m i t e dt ob eu s e d i nt h ec o m p u t e r so nw h i c ht h er s sr e a d e rh a si n s t a l l e d o n l i n er s sr e a d e rc a ns o l v e t h i sp r o b l e m a c c o r d i n gt ot h ea b o v ec o n s i d e r a t i o n ,t h ew e b s i t ep r o v i d e d a no n l i n er s s r e a d e rf o ru s e r ,n a m e l ya j a xr s sr e a d e r w i t hi t ,u s e rc a nv i s i to u rw e b s i t ea s a g g r e g a t em u l t i p l er s sf e e d sf r o mm u l t i p l e s o u r c e sw i t hr s sr e a d e r ,i n c l u d i n g 1 i i s u p p l ya n db u yi n f o r m a t i o np r o v i d e db y o u rw e b s i t e a sas o l u t i o n ,m v cp a t t e mw a sa d o p t e d w e bl a y e rw a sb u i l tb ys t r u t s f r a m e w o r kc o m b i n e dw i t ha j a x i nb u s i n e s sl o g i cl a y e r ,j a v a b e a nw a sa d o p t e dt o k e r n e lb u s i n e s sl o g i c i nd a t ap e r s i s t e n tl a y e r ,i ti sa d o p t e dt h a ts t r u t sf r a m e w o r k d a t a b a s ec o n n e c t i o np o o lw a sa d o p t e dt ob u i l dt h ec o n n e c t i o nt od a t a b a s e ,t o o l c l a s sw a sc r e a t e dt oe n c a p s u l a t et h eo p e r a t i o nt h a ts e a r c h i n gd a t as o u r c ea n d a c c e s s i n gd a t a b a s ec o n n e c t i o n ,t h e n ,aj a v a b e a nw a sc r e a t e dt oe n c a p s u l a t et h e o p e r a t i o na b o u td a t a b a s e f i n a l l y ,t h i sp a p e ri n t r o d u c e ds e v e r a lk e yp r o b l e m si nd e t a i l ,i n c l u d i n g :u t i l i z e j d o mt op r o v i d er s sf e e d ,h o wt oc o m p l e t ea no n l i n er s sr e a d e r ,h o wt ou s e a j a xt ov e r i f yt h ed a t aa n dt or e a l i z em u l t i l e v e lm e n u k e yw o r d s :a j a x ,r s s ,s t r u t s 1 v 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保留、 送交论文的复印件,允许论文被查阅和借阅:经作者同意学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生签名:益话诸导师签名研究生签名:垒煎遁导师签名期:盐! ! ! :堡。 武汉理工大学硕士学位论文 1 1 研究背景和意义 第1 章引言 c s ( 客户端服务器) 应用程序,是从二十世纪九十年代随着w i n d o w s 的出 现和客户端处理能力的增强而出现的应用程序,它采用图形用户界面,客户端 的数据处理能力比较强,具有强大的数据操作和事物处理能力。但是随着应用 程序的复杂程度不断提高,c 愿架构存在部署成本高、客户端应用程序更新困难 等问题u j 。 由于c s 架构的种种弊端,九十年代中期,互联网飞速发展,出现了b ,s ( 浏 览器服务器) 应用程序,w e b 的广泛使用解决了c s 应用程序部署、和更新的困 难。但是b s 应用程序受制于h t m l 的限制,无法像c s 那样使用丰富的效果来展 示数据,用户体验比较糟糕。随着w e b 应用程序复杂性越来越高,传统的w e b 应用程序已经渐渐不能满足w e b 浏览者更高的、全方位的体验要求了。 为了解决传统b s 应用程序较c s 应用程序相比,执行速度较慢,交互受到 限制的问题,人们也曾经采用过一些方法,但这些技术都没有很好的被支持。 随着w e b 2 0 的出现,一个过去并不被广泛支持的技术已经被越来越多的 用户所接受,它给了开发者更多的自由,开发先进的w e b 应用程序。这些通过 j a v a s c f i p t 来异步取得x m l 数据的应用程序,被称为“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 la p p l i c a t i o n s ) 。与传统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 ) 是结合了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 j a x 是使用客户端脚本与w e b 服务器交换数据 的w e b 应用开发方法。这样,w c b 页面不用打断交互流程进行重新加载,就可 以动态地更新。使用a j a x ,用户可以创建接近本地桌面应用的直接、高可用、 更丰富、更动态的w c b 用户界面。 a j a x 本身并不是全新的技术,而是指一种集成的方法:使用几种现有技术 包括级联样式表( c s s ) 、j a v a s c r i p t , x h t m l ,x m l 和可扩展样式语言转换 ( x s l t ) ,开发外观及操作类似桌面软件的w e b 应用软件。实现a j a x 的所有组 件都已存在了许多年。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 今年2 月发表在a d a p t i v ep a t h 网站上的一篇文章中率先给出 武汉理工大学硕士学位论文 了这个术语。 使用a j a x 的异步模式,浏览器就不必等用户请求操作,也不必更新整个 窗口就可以显示新获取的数据。只要来回传送采用x m l 格式的数据,在浏览 器里面运行的j a v a s c r i p t 代码就可以与服务器进行联系。j a v a s c r i p t 代码还可以 把样式表加到检索到的数据上,然后在现有网页的某个部分加以显示。 说到a j a x 的应用,g o o # e 公司不可不提。因为正是他们率先采用a j a x 技术建造出了一大堆非常出色的应用,才将a j 觚技术引到了聚光灯下。g o o g l e 公司建造的a j a x 应用包括g o o g l em a p s ,g m a i l ,g o o g l es u g g e s t 等等,其中公认 最优秀最复杂的a j a x 应用是g o o g l em 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 技 术和优秀的交互设计成为了他们压倒竞争对手的最后一根稻草。最终使得 o o o g l em a p s 脱颖而出,获得了用户的青睐。 本课题的研究目标是:利用a j a x 技术结合s m - t s 框架,实现硒c hi n t e m e t a p p l i c a t i o n ( 即“丰富互联网应用程序”) ,并将此技术应用与商情网站中。 1 2 论文结构 本文共分为七个章节: 第一章为引言,论述了本文的研究背景和意义,并提出课题的研究目标。 第二章针对本课题采用的a j a x 页面无刷新技术进行了深入的分析研究, 着重介绍了标准a j a x 交互,它的核心技术,优势以及应用领域。 第三章主要介绍了本文的另一重要技术r s s ,包括发展历程、结构技术特 点以及应用模式。 第四章介绍了为论文提供了研究课题的武汉舵落口大市场信息化项目,和 大市场商情网站的概要设计。 第五章讨论了大市场网站的逻辑层次,分为w e b 表现层、业务逻辑层、数 据持久层、数据存储层,并讲述了各层的具体实现方法。 第六章就系统中的几个关键问题进行了比较详细的阐述。 第七章结束语,对全文进行了总结,并提出了下一步研究方向。 2 武汉理工大学硕士学位论文 第2 章a j a x 页面无刷新技术 2 1 页面无刷新技术 在普通的w e b 交互方式中,由用户触发一个h 兀p 请求到服务器,服务器 对其进行处理后再返回一个新的h t m l 页面到客户端。服务器处理客户端提交 的请求的这段时间,客户都只能空闲等待。既便只是一次很小的交互,只需要 从服务器端得到一个很简单的数据,都要返回一个完整的h t m l 页面。而用户 每次都要浪费时间和带宽去重新读取整个页面。页面无刷新技术正是为了解决 这种情况出现的。 刷新技术经历了大致以下几个阶段【2 】: 第一阶段:m e t a 标签技术 这种技术可以说是最原始的方法了,大约可以追溯到9 8 年左右的i n t e r n e t 时代。它主要是利用m e t a 标签中h t t p - c q u i v 属性的r e f r e s h 值来通知浏览器在 每隔一定时间( 秒) 就去访问一次指定的页面( u r l ) 。例如: ,即每隔3 0 秒刷新一 次新浪网站。 这种技术就像当时的网络一样简单,其不足之处就是可控性不好,并伴有 “哒哒”的刷新声。 第二阶段:j a v a s c r i p t 脚本技术 j a v a s c r i p t 应用很灵活,其原理基本上是事件,时间触发j s 脚本来发出h r t p 请求,并捕甜处理服务器反馈信息,来实现通信和更新。 第三阶段:f r a m e i f r a m e 框架技术 第三阶段是对第二阶段的一种变通。即将众多框架中的一个长宽设置为0 , 使其不可见,然后通过脚本定时刷新该隐藏框架内容,再将该框架内容“写” 到可浏览的框架里。 真正意义上实现无刷新技术的还是以下两种技术,也就是第四个阶段,它 们甚至可以实现局部刷新。 第四阶段:x m l h t t p 、w e bs e r v i c e 1 x m l h t t p 技术:可以通过x m l h t t p 访问a s p 页面、a s p x 页面、w e b s e r v i c e 等。一个典型的应用如下所示: 3 武汉理工大学硕士学位论文 f u n c t i o nr e o v s i b t i p = n 翻】l ra e t i v e x o b j e c t ( ”m i c r o s o f t x m l h t t p ”) ; h t t p o p e n ( ”g e t i ,”d i n f o l & h t m ”,f a l s e ) ; h a p s 蛐d 0 ; v 缸妒h t t p r e s p o 班湾i 钒; t i r m e r h t m l = 蚰 ; 铡p 眵 q 卿mi d - - t 上述代码运行的结果是将乱h 嘧的页面内容显示在“锄i d = t ” 区域里。 2 w e bs e r v i c e :使用w e b s e r v i c e h t c 组件访问w e b 服务。需要提供w e b s e r v i c e 的服务器。一个典型的应用如下所示: v 越o b j ; f u n c t i o ni n i t ( o b j ,o p , i d ) o b j = o b j : o b j u s e s e r v i c e ( a d m i n d a t a o p c r a t i o n a s m x ? w s d l ”,”g e t b o d y ”) ; o b j g e t b o d y c a i l s c r v i c e ( s h o w , o p ,i d ) : f u n c t i o ns h o w ( r e s u l t ) o b j i n n e r h t m l - - r e s u l t v a l u e ; ) 除上述技术之外,使用r m o t m g 技术也可以实现无刷新技术。因为 p m o t i n g 组件可以提供包括h t t p 在内的多种访问方式,当作为n t t p 访问时相 当于一个w e bs e r v i c e ar e m o t i n g 的应用有微软的m i c r o s o f tr e m o t es c r i p t i n gf o r a s p 。当然,这种应用局限于服务器端使用a s p 。 2 2a 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 ) 这个概念最早由一个名叫j e s s e j a m e sg a 矾嫩的人提出。中文意思是j a v a s c r i p t 与x m l 的异步。它并不是一门 新的语言或技术,而是几项技术按一定的方式组合在一起,在共同的协作中发 挥各自的作用。 a j a x 是使用客户端脚本与w e b 服务器交换数据的w e b 应用开发方法。这 4 武汉理工大学硕士学位论文 样,w e b 页面不用打断交互流程进行重新加裁,就可以动态地更新。使用a j a x , 用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的w e b 用户 界面。它包括的内容有:使用x i - i t m l 和c s s 标准化呈现;使用d o m 实现动 态显示和交互;使用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 绑定和处理所有数据【3 】。 厂b 嗍d i 明t 、 【 u s e ri n t e r f a c e j i h n 甲r e q u e s t h t t p ( s ) t r a n s p o r t 删l + c s sd a t a 厂1、 w e bs e r v e r if d a t a s t o r e 。b a d ( e n d p r o c e s s i n g ,l e g a c ys y s t e m s s e m r s i d e s y s t e m s 厂 b 帕岍旷d i e n t 、 u s e ri n t e r f a c e j a v a ! s = p t c a l l th t m l + c s s | d a t a a j a xe n g i n e h 丌甲 r e q u e s t h t t p ( s ) t r a n s p o r t x m ld a t a 厂1 、 w e ba n d o rx m ls e r v e r 0f d a t a s t o r e b a c k e n d p r o c e s s i n g ,l e g a c ys y s t e m s s e c r e t - s i d es y s t e m s 传统w 曲应用模型基于a j a x 的w e ;b 应用模型 图2 1 传统w e b 应用模型与基于a j a x 的w e b 应用模型的比较 图2 1 分别给出了传统w e b 应用模型和基于a j a x 的w e b 应用模型,下 面我们讲两种w e b 应用模型做一个简单的比较。 传统的w e b 应用采用同步交互过程,这种情况下,用户首先向h r t p 服务 器触发一个行为或请求的呼求。反过来,服务器执行某些任务,再向发出请求 的用户返回一个h t m l 页面。这是一种不连贯的用户体验,服务器在处理请求 的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白。 与传统的w e b 应用不同,a j a x 采用异步交互过程。a j a x 在用户与服务 器之间引入一个中间媒介,从而消除了网络交互过程中的处理等待处理一 等待缺点。用户的浏览器在执行任务时即装载了a j a x 引擎。a j a x 引擎用 j a v a s e r i p t 语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服 务器之间的交互。a j a x 引擎允许用户与应用软件之间的交互过程异步进行, 独立于用户与网络服务器间的交流。现在,可以用j a v a s c r i p t 调用a j a x 引擎 来代替产生一个h t r p 的用户动作,内存中的数据编辑、页面导航、数据校验 这些不需要重新载入整个页面的需求可以交给a j a x 来执行。 5 武汉理工大学硕士学位论文 2 3a j a x 的核心技术 a j a 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 ,d o m 以及c s s 4 1 。 图2 - 2a 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 和c s s 来改变界面的外观。 1 x m l h t t p r e q u e s t :a j a x 的一个最大的特点是无需刷新页面便可向服务 器传输或读写数据( 又称无刷新更新页面) ,这一特点主要得益于x m l h t y p 组 件x m l h t t p r e q u e s t 对象。这样就可以向再发桌面应用程序只同服务器进行数 据层面的交换,而不用每次都刷新界面也不用每次将数据处理的工作提交给服 务器来做,这样即减轻了服务器的负担又加快了响应速度、缩短了用户等候时 间。 最早应用x m l h t t p 的是微软,l e ( i e 5 以上) 通过允许开发人员在w e b 页 面内部使用x m l h t f pa c t i v e x 组件扩展自身的功能,开发人员可以不用从当 前的w e b 页面导航而直接传输数据到服务器上或者从服务器取数据。这个功能 是很重要的,因为它帮助减少了无状态连接的痛苦,它还可以排除下载冗余 h t m l 的需要,从而提高进程的速度。m o z i l l a ( m o z i l l a l 0 以上及n e t s c a p e 7 以 上) 做出的回应是创建它自己的继承x m l 代理类:x m l h t t p r e q u e s t 类。 k o n q u e r o r ( 和s a f a f i v l 2 ,同样也是基于k h t m l 的浏览器) 也支持 6 武汉理工大学硕士学位论文 x m l h t t p r e q u e s t 对象,而o p e r a 也将在其v 7 6 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 对象和x m l h t t p 组件很相似,方法和属性也类似,只是有一小部分属性不支持。 2 j a v a s e r i p t 5 1 :是一种基于对象( o b j e c t ) 和事件驱动( e v e n td r i v e n ) 并 具有安全性能的脚本语言。使用它的目的是与h t m l 超文本标记语言、j a v a 脚 本语言( j a v a 小程序) 一起实现在一个w e b 页面中链接多个对象,与w e b 客 户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准 的h t m l 语言中实现的。它的出现弥补了h t m l 语言的缺陷,它是j a v a 与 h t m l 折衷的选择,具有以下几个基本特点: ( 1 ) 是一种脚本编写语言。j a v a s e r i p t 是一种脚本语言,它采用小程序段的 方式实现编程。像其它脚本语言一样,j a v a s e r i p t 同样已是一种解释性语言,它 提供了一个易的开发过程。它的基本结构形式与c ,c + + ,v b ,d e l p h i 十分类 似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解 释。它与h t m l 标识结合在一起,从而方便用户的使用操作。 ( 2 ) 基于对象的语言。j a v a s c r i p t 是一种基于对象的语言,同时以可以看作 一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可 以来自于脚本环境中对象的方法与脚本的相互作用。 ( 3 ) 简单性。j a v a s c r i p t 的简单性主要体现在:首先它是一种基于j a v a 基本 语句和控制流之上的简单而紧凑的设计,从而对于学习j a v a 是一种非常好的过 渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。 ( 4 ) 安全性。j a v a s c r i p t 是一种安全性语言,它不允许访问本地的硬盘,并 不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏 览器实现信息浏览或动态交互。从而有效地防止数据的丢失。 ( 5 ) 动态性的。j a v a s :鲥p t 是动态的,它可以直接对用户或客户输入做出响 应,无须经过w e b 服务程序。它对用户的反映响应,是采用以事件驱动的方式 进行的。所谓事件驱动,就是指在主页( h o m ep a g e ) 中执行了某种操作所产生的 动作,就称为“事件”( e v e n t ) 。比如按下鼠标、移动窗口、选择菜单等都可以 视为事件。当事件发生后,可能会引起相应的事件响应。 ( 6 ) 跨平台性。j a v a s e r i p t 是依赖于浏览器本身,与操作环境无关,只要能 运行浏览器的计算机,并支持j a v a s c r i p t 的浏览器就可正确执行。从而实现了 “编写一次,走遍天下”的梦想。 j a v a s e r i p t 是一种新的描述语言,它可以被嵌入到h t m l 的文件之中。 j a v a s c r i p t 语言可以做到回应使用者的需求事件( 如:f o r m 的输入) ,而不用任 7 武汉理工大学硕士学位论文 何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给 服务器端处理,再传回来的过程,而直接可以被客户端的应用程式所处理。 现在,可以通过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 e r i p t 在整个a j a x 中起到一个粘合剂的作用,将各种技术融合在起,我 们可以通过它来操作d o m 和x m l ,与后台交互。但是我们也需要注意的是, j a v a s e r i p t 由于是在客户端执行的代码,不能过长。而且,如果客户端的安全级 别过高,也可能对应用造成一定的影响。 3 d o m ( d o c u m e n to b j e c tm o d e l ) :d o m 是给h t m l 和x m l 文件使用的 一组a p i 。它提供了文件的结构表述,让你可以改变其中的内容及可见物。其 本质是建立网页与s c r i p t 或程序语言沟通的桥梁。所有w e b 开发人员可操作及 建立文件的属性、方法及事件都以对象来展现( 例如,d o c u m e n t 就代表“文件 本身”这个对象,t a b l e 对象则代表h t m l 的表格对象等等) 。这些对象可以 由当今大多数的浏览器以s c r i p t 来取用。 在传统的w e b 应用中,我们通常使用来自服务器的新的h t m l 流来刷新 整个页面,并通过提供新的h t m l 来重新定义用户界面;而在燃应用中, 用户界面的更新主要是适用d o m 来完成的。w e b 页面中的h t m l 标签被组织 成一个树状结构。树的根节点是 标签,它代表这个文档。在它的内部 的 表现代表文档的主体部分,是可见的文档结构的根节点。在文档主 体之内,有表格、段落、列表以及其他的标签类型。 4 c s s :c s s 是w e b 设计沿用已久的部分,无论是在传统的w e b 应用还 是在a j a x 应用中,c s s 都是一种频繁使用的技术。样式表提供了集中定义各 种视觉样式的方法,并且可以非常方便地设置在页面的元素上。样式表可以定 义一些明显的样式元素,例如颜色、边框、背景图片、透明度和大小等。此外, 样式表还可以定义元素相互之间的布局以及简单的用户交互功能。 在传统的w e b 应用中,样式表提供了一种很有用的方法,可以在某个地方 定义一些在很多其他页面中重用的样式。在a j a x 应用中,虽然我们不在把应 用思考为一些切换的页面,但是样式表可以用最少的代码动态的为元素设置预 先定义的外观。 简而言之,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 t m 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 e r i p t 将所有的东 西绑定在一起。 8 武汉理工大学硕士学位论文 客户服务器 图2 3 标准a j a x 交互 一个标准的a j a x 交互如图2 3 ,具体步骤如下1 6 : 1 一个客户端事件触发一个a j a x 事件。从简单的o n c h a n g e 事件到某个 特定的用户动作,很多这样的事情都可以出发a j a x 事件; 2 创建x m l h t t p r e q u e s t 对象的一个实例。使用o p e n 0 方法建立调用,并 设置u r l 以及所希望的h r r p 方法( 通常是g e t 或p o s t ) 。请求实际上通 过一个s e n d 0 方法调用触发。 3 向服务器做出请求。可能调用s e r v l e t ,或者任何服务器端技术。 4 服务器处理请求,包括访问数据库,甚至访问另一个系统。 5 请求返回到浏览器。 6 在这个示例中,x m l h t t p r e q u e s t 对象配置为处理返回时要调用c a l l b a c k 0 函数。这个函数会检查x m l h t t p r e q u e s t 对象的r e a d y s t a t e 属性,然后查看服务 器返回的状态码。 2 4 删的优势 a j a x 是传统w e b 应用程序的一个转变。以前是服务器每次生成h t m l 页面并返回给客户端浏览器。在大多数网站中,很多页面中至少9 0 都是一样 的,比如:结构、格式、页头、页尾、广告等,所不同的只是小部分的内容, 但每次服务器都会生成所有的页面再返回给客户端,这无形之中是一种浪费, 不管是对于用户的时间、带宽、c p u 耗用,还是对于工s p 的高价租用的带宽 和空间来说。 1 减轻服务器的负担。a j a x 使w e b 中的界面与应用分离( 也可以说是数 据与呈现分离) ,而在以前两者是没有清晰的界限的,数据与呈现分离的分离, 9 武汉理工大学硕士学位论文 有利于分工合作、减少非技术人员对页面的修改造成的w e b 应用程序错误、 提高效率、也更加适用于现在的发布系统。也可以把以前的一些服务器负担的 工作转嫁到客户端,利于客户端闲置的处理能力来处理。因为a j a x 的根本理 念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的 负担。 2 无刷新更新页面,减少用户实际和心理等待时间。首先,“按需取数据” 的模式减少了数据的实际读取量,如果说重载的方式是从一个终点回到原点再 到另一个终点的话,那么a j a x 就是以一个终点为基点到达另一个终点。普通 页面重载方式与a j a x 重载方式的对比如图2 _ 4 所示。 图2 - 4 页面重载方式对比 其次,即使要读取比较大的数据,也不用像重载一样出现白屏的情况。由 于a j a x 是用) 咖,h t l p 发送请求得到服务端应答数据,在不重新载入整个页 面的情况下用j a v a s c f i p t 操作d o m 最终更新页面的,所以在读取数据的过程中, 用户所面对的也不是白屏,而是原来的页面状态( 或者可以加一个l o a d i n g 的 提示框让用户了解数据读取的状态) ,只有当接收到全部数据后才更新相应部分 的内容,而这种更新也是瞬间的,用户几乎感觉不到。 3 更好的用户体验。由于用户页面的更新在很短的时间完成,避免了用户 长时间等待;同时用户可以根据自身需要调整页面的布局,而且只需要进行简 单的拖拽即可完成操作。 4 也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置 的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本。 5 基于标准化的并被广泛支持,并且不需要插件或下载小程序。 6 a j a x 使w e b 中的界面与应用分离( 也可以说是数据与呈现分离) ,有 利于分工合作、减少非技术人员对页面的修改造成的w e b 应用程序错误、提 高效率、也更加适用于现在的发布系统。 7 对于用户和i s p 来说是双赢的。a j a x 可以作为客户端和服务器的中间 层,来处理客户端的请求,并根据需要向服务器端发送请求,用什么就取什么、 用多少就取多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更 1 0 武汉理工大学硕士学位论文 新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于纯后台处 理并重载的方式缩短了用户等待时间,也把对资源的浪费降到最低,基于标准 化的并被广泛支持和技术,并且不需要插件或下载小程序,所以a j a x 对于用 户和i s p 来说是双赢的。 2 5a j a x 的应用 由于a j a x 的核心是j a v a s e r i p t 和x m l 这两种技术,而j 2 e e 平台下的 w 曲系统开发对这两种技术都做到了很好的支持,因此将a j a x 运用于j 2 e e 平台是切实可行的。a j

温馨提示

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

评论

0/150

提交评论