- 浏览: 13636 次
最新评论
Ajax优于JSF的原因
2009年07月06日
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(动态网站静态化),因为没有使用xml(标准化越来越近了)HttpRequest,这样说看来理解有些狭隘。
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.cncms.com.cn/ajax(动态网站静态化)/n342262.html
本文来源于 WEB开发网 原文链接:http://www.cncms.com.cn/ajax/9996.htm
发表评论
-
转:构建可扩展的Java EE应用
2012-01-20 02:33 699转:构建可扩展的Java EE ... -
升级Red Hat 9.0(Kernel 2.4.20-8) 至 Linux Kernel 2.6.15 笔记(最全)
2012-01-20 02:33 870升级Red Hat 9.0(Kernel 2.4.20-8) ... -
Hive - 运用于hadoop的拍字节范围数据仓库
2012-01-20 02:33 1600Hive - 运用于hadoop的拍字节范围数据仓库 201 ... -
如何配置Tomcat 5和IIS 5协同工作
2012-01-20 02:32 592如何配置Tomcat 5和IIS 5协同工作 2010年06 ... -
rsync远程备份
2012-01-20 02:32 599rsync远程备份 2011年03月28日 正常使用 ... -
我的元旦演讲稿
2012-01-19 10:19 552我的元旦演讲稿 2012年01月11日 尊敬各位的领导、 ... -
培养阳光心态,培养积极性 的演讲稿
2012-01-19 10:19 558培养阳光心态,培养积极 ... -
演讲稿
2012-01-19 10:19 587演讲稿 2011年12月21日 各位老师各位同学们,大家 ... -
演讲稿
2012-01-19 10:19 632演讲稿 2011年05月07日 竞职演讲稿 各位领导 ... -
演讲稿《相信自己》
2012-01-19 10:19 720演讲稿《相信自己》 2012年01月12日 大家好,我非 ... -
[论文]企业网中代理服务器的检测程序开发
2012-01-17 03:00 815[论文]企业网中代理服 ... -
转:Property in C++
2012-01-17 03:00 582转:Property in C++ 2011年03月14日 ... -
4-25Linux下的一些简单网络配置命令介绍
2012-01-17 03:00 5434-25Linux下的一些简单网络配置命令介绍 2011年0 ... -
Leica TPS基础知识
2012-01-17 03:00 798Leica TPS基础知识 2011年0 ... -
2011-3-20
2012-01-17 03:00 6502011-3-20 2011年03月20日 ... -
作文批改评语范例
2012-01-16 01:31 545作文批改评语范例 2011 ... -
什么是WAP?
2012-01-16 01:31 504什么是WAP? 2009年08月30 ... -
《程序天下事》6月要闻回顾
2012-01-16 01:31 484《程序天下事》6月要闻回顾 2009年07月05日 Or ... -
ArcGIS Server 10的新特性
2012-01-16 01:30 708ArcGIS Server 10的新特性 2011年04月2 ...
相关推荐
Ajax4jsf 用户指南 目录 1. 介绍 2. 开始使用 Ajax4jsf 环境需求 下载 Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部署 3. Ajax4jsf 框架的基本概念 ...
jboss-ajax4jsf-1.1.1-src 具体自己看吧
ajax4jsf ajax jsf 实例
ajax4jsf jar ajax4jsf jar
ajax4jsf.jar是在jsf中封装应用ajax功能的包,其优点是不用编写ajax的代码
JSF入门教程 JSF标签 JSF的LIB Ajax4JSF使用手册 JSF项目的创建 包你入门
AJAX4JSF級聯,實現省份與城市,只是一個簡單的Demo,沒有詳細省市資料.
ajax4jsf-demo
本文档是一jar档的集合,适用于对AJAX4JSF的开始所需,因在网上下载AJAX4JSF时,经常无法正常进入!所以在此发布啦!此包中包括了AJAX4JSF开发所需的包,请下载啦
ajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jarajax4jsf.jar
2. 开始使用Ajax4jsf 环境需求 下载Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部署 3. Ajax4jsf 框架的基本概念 介绍 结构概览 如何做... 发送一个AJAX 请求 ...
不用多说了吧,集合ajax和jsf应用的中文版说明文档。
seam+jsf+richfaces+ajax4jsf相关电子书,做个备份吧!网上也很多的!
ajax4jsf-1.0.6.jarajax4jsf-1.0.6.jarajax4jsf-1.0.6.jar
ajax+jsf+spring+hibernate开发的实例源码
标签:ajax4jsf-1.1.1.jar.zip,ajax4jsf,1.1.1,jar.zip包下载,依赖包
jsf+spring+hibernate+ajax4jsf的整合,需要自己加入jar包,ajax4jsf用的是Richfaces
JSF-Ajax4jsf学习资料
JSF+RichFaces(Ajax4jsf)框架示例
ajax4jsf 局部刷新刷新datatable 例子