浅析Ajax为什么优于JSF

2016-02-20 01:01 12 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐浅析Ajax为什么优于JSF,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)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与传统开发方式最大的差别,异步带来了更好的交互设计。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 

在AjaxinAction第1章中作者举了一个令人信服的例子。GoogleMaps中当用户滚动地图时,获取新的地图图片,由于是异步请求的,因此不会打断用户的操作流程。而在传统的地图服务,每次滚动可能都需要刷新页面。用一下微软的那个地图服务就可以感觉到明显的差距,它甚至根本就不允许用户滚动地图。

 

http://terraserver.microsoft.com/

 

以前我说GoogleMaps不是Ajax,因为没有使用XMLHttpRequest,这样说看来理解有些狭隘。GoogleMaps请求地图的图片,采用的是修改动态创建的img元素的src属性的方式,这样的请求不会打断用户的操作,因此就是异步的。我们在AjaxinAction中看到作者将GoogleMaps当作Ajax应用,而在PragmaticAjax中作者说GoogleMaps不是严格意义上的Ajax,两种说法都有道理。

 

JSF其实如果和Applet结合,可能更好些。Applet是多线程的,可以捕获用户的操作事件,采用异步方式发送到服务器。这样就不会打断用户的操作了。但是这样一来设计的这个架构就复杂了。而且Applet是已经决定抛弃的东西。JSF和JavaWebStart结合也可以,不过JWS设计用来建造一类完全不同的Web应用,即RichClient,而不是设计用来建造运行于浏览器之内的RIA应用。所以JSF最多只是一种过渡方案,在Ajax/Flash的竞争下早已风光不在。

 

未来基于浏览器的RIA开发,Ajax、Flash是两种最有前途的技术。

 

按照泽欣的判断可能是三分天下,Ajax、Flash/Flex/Laszlo、还有M$的Atlas。Atlas是M$开发的类似于Flash的一种技术,目前还只是一个vaporware,没有看到其庐山真面目。JavaWebStart相比之下只能局限于一些内部应用。

 

将来位于客户端的表现层开发可能会完全没有Java的位置,这是Sun不愿意看到的,但是Sun在这场角逐中只不过是一个小角色。 

来源:http://www.tulaoshi.com/n/20160220/1633070.html

延伸阅读
母乳喂养哪些优于奶粉喂养 专家建议妈咪应该更多使用母乳喂养,因为,奶粉喂养可能会造成一些潜在的危险。 这些危险并非针对一、两个牌子而言的,而是针对所有的奶粉,因此,即使家长转变奶粉的牌子,也并非真的能降低风险。 喂奶粉会增加宝宝耳朵感染、呼吸系统感染、儿童癌症、过敏、青少年糖尿病、腹部感染、尿逆流甚至婴儿突发死亡等疾...
标签: Web开发
      Ajax 简介 Ajax 全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 主要包含了以下几种技术: Ajax (Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model...
RED HAT是全球最大的开源技术厂家,其产品RED HAT LINUX也是全世界应用最广泛的LINUX。RED HAT公司总部位于美国北加利福尼亚。在全球拥有22个分部。对于RED HAT来说,开放源代码已经不只是一个软件模型,这正是RED HAT的商业模式。因为RED HAT坚信只有协作,企业才能创造出非凡质量和价值的产品。 迄今为止,RED HAT已经为全球30...
《要塞3》浅析! 《要塞3》的HUD看起来像上个世纪的游戏,尤其是小地图太粗糙了。游戏引擎是Vision Engine,采用该引擎的游戏还有《工人物语7:王国之路》与哥特王朝4。 总体来看《要塞3》是一款粗线条式的RTS,比如单位没有攻防的具体数值,没有血量,游戏节奏较竞技类的RTS要慢上很多,SC2中上来虫族7D 4分钟就可以分出胜负,神族10P BE 极限4...
标签: Web开发
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用:  * 使用XHTML+CSS来表示信息;  * 使用JavaScript操作DOM(Document Object Model)进行动态显示及交互;  * 使用 XML 和 XSLT 进...

经验教程

660

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部