Ajax只是过渡???

Ajax只是过渡???

ID:40745711

大小:32.50 KB

页数:8页

时间:2019-08-07

Ajax只是过渡???_第1页
Ajax只是过渡???_第2页
Ajax只是过渡???_第3页
Ajax只是过渡???_第4页
Ajax只是过渡???_第5页
资源描述:

《Ajax只是过渡???》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1前言 在J2EE下一代规范JavaEE5.0中,JSF(JavaServerFaces)技术被放到了一个非常重要的地位。J2EE社区试图通过JSF来统一Web应用的开发模式与方法。相对于传统的基于JSP/Servlet的开发模型,JSF能够带来许多好处,譬如:  ·可定制的丰富的UI组件  ·良好的事件响应机制  ·表达式语言(ExpressionLanguage)  ·表单数据的自动转换与验证  ·基于MVC的框架模型等等... 但同时我们也不得不看到,业界常见的JSF引擎普遍存在着一些缺陷与不足(并不是说JSF技术模型本身的局限,而是常规的实现机制所产生的一些问题),而这

2、些不足将可能对JSF成为日后Web应用主流开发技术带来一定的负面影响,包括:  ·常规的JSF实现机制,运行期性能并不是非常理想  ·缺少良好的工具支持 作为JCP组织成员,金蝶中间件对待JSF技术又是如何思考的?是否打算对JSF进行全面支持?又是通过怎样的解决方案来克服上述不足的呢?2JSF与Ajax 一谈到Web开发技术,就不得不提Ajax。这是目前在整个IT界都红得发紫的概念了。在这里我想没必要再去阐述一遍什么是Ajax,但我们可以对Ajax有一个基本的认识。 Ajax其实是一种新瓶装旧酒的技术,它的好处是通过JavaScript与DHTML,提供了一种异步编程模型,从而

3、使我们的Web应用给客户带来更好的人机体验。但Ajax解决问题的层面很低;或者说,它解决问题的方法与手段,很难形成一种可高度抽象的框架级解决方案,而JSF则是一种可扩展的框架级解决方案。 事实上,我认为Ajax是一种过渡技术,相信在未来一到两年之内将被新的技术所代替,是微软的XAML、Mozilla的XUL、还是任何可能的RIA标准,实际上整个业界都在观望。但不管采用什么技术,JSF都能适应,对JSF来说适应一个新技术只是更换一个RenderKit而已。举一个例子,如果想在网页中实现图表功能(Chart),MSIE有VML,Gecko和Opera有SVG,而在服务器端只需要简单

4、地判断一下浏览器类型就可以选择一个RenderKit生成不同的markup来完成相同的功能,这是用常规JSP技术很难完成的任务。3ApusicJSF:中国人做出的JSF引擎3.1容器级别的Ajax支持 目前有JSF+Ajax这种思路的,恐怕也不是金蝶中间件一家,但很多第三方的JSF+Ajax实现是提供一个组件库以及一个附加的Servlet或Filter来处理Ajax请求,而我们是直接由JSF容器来处理Ajax请求的。我们会根据请求的类型来判断这是一个正常的HTTP请求还是一个Ajax请求。如果是一个常规HTTP请求就运行JSP页面,生成页面文档(并且我们会在生成的页面文档中嵌入

5、Ajax所必须的JavaScript代码,后文提及);如果该请求是一个Ajax请求,服务器对请求参数正常解码,并执行JSF中除页面输出阶段以外的所有其他阶段,这时将生成一个JSF的组件树,遍历该组件树,从中找出发生变化的数据,并将这些数据打包成一个Ajax应答,并由客户端来更新这些修改的数据,甚至改变页面外观。 在JSF规范中,JSF页面输出阶段所采用的RenderKit是可替换的,默认的HTML_BASICRenderKit输出的是标准的HTML语法,不包含任何JavaScript代码,ApusicJSF引擎实现了一个AJAXRenderKit,可以在HTML文档中嵌入Jav

6、aScript代码来实现Ajax特性,而替换RenderKit只需要修改配置文件即可。那么,这样能够带来怎样的好处呢?3.2提升JSF运行性能,带来更好的人机体验。 常规JSF容器在状态维护方面的通用做法是:基于Session的,或者基于请求传递型的,这就意味着,当每进行一次客户端与服务器端的响应时,都需要把所有的状态传来传去,这无疑会对系统的运行性能带来较大的负面影响,从而使开发人员误以为:JSF是一种重量级的技术模型。 而通过ApusicJSF的Ajax特性,我们能够只把发生变化的数据打包成Ajax请求发送给服务器端,而服务器端也只会将发生变化的数据打包成Ajax应答,从而

7、大大提升系统的运行效率。并且,传统的JSF请求应答将刷新整个页面,而ApusicJSF将只更新发生变化的客户端组件,从而给客户带来更好的人机体验。3.3简化Ajax的开发 以前要写Ajax应用要写很多JavaScript代码,开发、调试、维护这些Script脚本都相当烦琐,如果采用ApusicJSF技术,你不再需要编写任何JavaScript代码,引擎已经帮你生成了这些代码。ApusicJSF所有的标准组件都是支持Ajax的,某些第三方组件可能本身并不支持Ajax,但使用一个名为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。