Ajax优于JSF的原因

2016-02-19 22:27 9 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Ajax优于JSF的原因的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - Web开发 】

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在这场角逐中只不过是一个小角

来源:http://www.tulaoshi.com/n/20160219/1628377.html

延伸阅读
The JavaServer Faces (JSF)的Navigation框架提供了一些导航规则,可以使您在设计网站应用程序时定义view(大部分是jsp页面)之间的页面导航。这些规则和 其他一些设置一起定义在JSF配置文件中。 该文件的名称一般是 faces-config.XML 。不过完全可以把这个文件名改成其他名字,甚至可以用多个配置文件来存放相关的JSF配置信息,只...
苹果iPhone优于安卓手机的9大理由   1、iPhone总能最先体验最优秀的App iPhone总能最先体验最优秀的App,此话不假,虽然iPhone的市场份额很小,但是苹果建立起的App Store却有着非常良好的生态环境,开发者在开发App时往往更愿意首先为iOS平台推出。你可以在安卓平台上找到相同的App,但并没有iOS同样优秀的设计和体验。 ...
标签: Web开发
AJAX介绍      AJAX 关键词:   JavaScript脚本和可扩展标记语言(XML)   WEB浏览器技术   开放式WEB标准   浏览器以及独立平台   更好更快的网络应用程序   XML以及HTTP请求      AJAX = 异步JavaScript和可扩展标记语言   A...
    Struts/Tapestry/JSF是目前J2EE表现层新老组合的框架技术。从诞生时间上看,Struts应该比较早,使用得非常广泛,Tapestry 3.0逐渐引起广泛的重视,正当Tapestry即将大显身手时期,SUN推出JSF标准技术,虽然JSF一开始推出尚不成熟,留出了一段空白期,但是随着JSF1.1标准推出,JSF开始正面出击,粉面隆重登场了。 ...
标签: Web开发
在某网站瞎逛时,发现这个链接,进去逛了逛,觉得很有意思,大家也可以去看看,姑且不论你是否同意里面的观点,看看别人看待ajax的角度,这对于理解一个事物很有帮助。 下面是我对一部分缺陷的看法: 为Ajax而Ajax(Using Ajax for the sake of Ajax.) 很同意这点,当一个技术本身的生存意义由于它自身的亮点而被抹杀,不知道是这个技术的幸运...

经验教程

740

收藏

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