Ajax优于JSF的原因
日期:2007年3月30日 作者: 查看:[大字体 中字体 小字体]-
Sun为什么会搞出一个JSF,JSF为什么会是现在这个样子,我想原因是这样的。
首先,基于组件的Web开发将来会是一个趋势。自包含的组件便于IDE的处理,可以提高开发效率。
就是说JSF优于Struts/WebWork这类MVC框架的优势,在于它可以与IDE结合来自动生成代码。
而传统的纯手工编写的MVC框架,影响了开发效率。
因为Java技术在客户端并没有明显的优势。Applet已经被抛弃掉,Java的强项在服务器端。Sun不可能跑去使用javascript,因为在传统开发者眼里,JS只配做一点很琐碎的任务。
于是在他们设计的这个架构中,所有的用户事件都放在了服务器端来处理。
这个决策造成了JSF致命的缺点。它把事件处理模型绑死在服务器上,限制了响应性更加灵敏的交互设计。随之而来的网络延迟会毁掉软件的可用性。
这也是Ajax在JSF的架构中无法充分发挥作用的原因。
JSF的设计思路有点模仿VB,组件化的开发这个方向是没错的,Ajax开发将来也会走这条路。但是JSF与VB最大的差别是VB的事件模型都是位于本地来处理的。这是一种本质上的差别,所以如果JSF确实想模仿VB,那也是东施效颦。
而且在JSF的设计阶段,同步的请求/响应是主流,他们的思路仍然牢牢束缚在基于页面的开发方式上。根本就没有思考过其他的可能。
异步请求/响应是Ajax与传统开发方式最大的差别,异步带来了更好的交互设计。
在Ajax in Action第1章中作者举了一个令人信服的例子。Google Maps中当用户滚动地图时,获取新的地图图片,由于是异步请求的,因此不会打断用户的操作流程。
而在传统的地图服务,每次滚动可能都需要刷新页面。
用一下微软的那个地图服务就可以感觉到明显的差距,它甚至根本就不允许用户滚动地图。
http://terraserver.microsoft.com
以前我说Google Maps不是Ajax,因为没有使用XMLHttpRequest,这样说看来理解有些狭隘。
Google Maps请求地图的图片,采用的是修改动态创建的img元素的src属性的方式,这样的请求不会打断用户的操作,因此就是异步的。
我们在Ajax in Action中看到作者将Google Maps当作Ajax应用,而在Pragmatic Ajax中作者说Google Maps不是严格意义上的Ajax,两种说法都有道理。
JSF其实如果和Applet结合,可能更好些。Applet是多线程的,可以捕获用户的操作事件,采用异步方式发送到服务器。这样就不会打断用户的操作了。
但是这样一来设计的这个架构就复杂了。而且Applet是已经决定抛弃的东西。
JSF和Java Web Start结合也可以,不过JWS设计用来建造一类完全不同的Web应用,即Rich Client,而不是设计用来建造运行于浏览器之内的RIA应用。
所以JSF最多只是一种过渡方案,在Ajax/Flash的竞争下早已风光不在。
未来基于浏览器的RIA开发,Ajax、Flash是两种最有前途的技术。
按照泽欣的判断可能是三分天下,Ajax、Flash/Flex/Laszlo、还有M$的Atlas。
Atlas是M$开发的类似于Flash的一种技术,目前还只是一个vaporware,没有看到其庐山真面目。
Java Web Start相比之下只能局限于一些内部应用。
将来位于客户端的表现层开发可能会完全没有Java的位置,这是Sun不愿意看到的,但是Sun在这场角逐中只不过是一个小角(出处:急速软件下载学院)
-
- Ajax优于JSF的原因 相关文章:
- ·XP提示“虚拟内存不足”原因总结
- ·QQ常在异地登录的原因及其应对方法
- ·“中文.COM”因繁简不等效再陷纠纷
- ·百度的关键词排名是否会考虑站点历史因素
- ·Vista SP1性能不及XP SP3有六大原因
- ·BT下载速度变慢原因解读及应对方法分析
- ·Vista SP1性能不济的六个原因
- ·做Google AdSense被封号的几个主要原因
- ·服务器不稳定或站点打开慢的原因
- ·我们需要对CSS进行缩写的原因
- Ajax优于JSF的原因 相关软件
- ·《时空之泪》基因主城音乐
- ·《基因传奇》
- ·范达因第三部《格林家杀人事件》
- ·〔经典〕 范达因“杀人事件”推理作品集
- ·啼笑因缘
- ·因为青所以涩
- ·汉字基因工程
- ·国民财富的性质和原因的研究
- ·因为你不是西门子
- ·冰风溪谷2简体中文版 字体修正补丁(修正了因为加密问题导致的原中文版字体太小的问题)
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:MYSQL5重置root密码
精品推荐
热点TOP10
- ·Ajax实现分页查询
- ·用 AJAX 来控制书签和回退按钮
- ·jQuery语法总结和注意事项
- ·Asp.net Ajax--Calendar控件使用
- ·在Web2.0下的十大AJAX安全漏洞以及成因
- ·Ajax无刷新实现图片切换特效
- ·ASP.NET AJAX中的异步Web Services调用
- ·成功实现ajax,xmlhttp跨域访问
- ·WebService 服务和ajax 使用教程一例
- ·.NET3.5和VS2008中的ASP.NET AJAX
- ·实例:AJAX编写用户注册实例及技术小结
- ·基于AJAX的动态树型结构的设计与实现
- ·利用AJAX技术实现网页无刷新进度条显示
- ·在Struts 2中使用JSon ajax支持
- ·经典文章:过渡技术的Ajax及Apusic JSF
- ·JSP+AJAX多选、全选,添加、删除、更新多选框
- ·面向Java程序员的Ajax:构建动态Java程序
- ·经典文萃:Ajax技术的安全问题不容忽视
- ·用事实说话!AJAX应用程序开发七宗罪
- ·剖析ASP.NET AJAX的面向对象思想
