|
锁定老贴子 主题:AJAX & JSF
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2006-07-06
很多人可能不看好JSF,原因之一可能认为JSF并不会在用户体验上带来很大的改善,因为他并没有在这方面有特别的设计。其实不然,JSF可以很好的和AJAX技术结合起来。我相信将来会有很多的符合JSF规范的并使用了AJAX技术的页面组件。有了这样的组件并且集成到IDE中后,连最没有技巧的开发人员也能作出高水准web页面应用。
下面是一个例子 [url=http://ajax.sys-con.com/read/204707.htm]JavaServer Faces and AJAX for Google Fans[/url] 老规矩还是要介绍Oracle的产品,ADF FACES 里的jsf ,ajax组件。oracle已经把这个东西捐献给开源界了。 [url=http://jdj.sys-con.com/read/232061.htm] The Benefits Of The AJAX RenderKit[/url] 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2006-07-06
JSF的优点是对web应用软件设计开发模式上的改善。而AJAX更多的是用户体验上的改善。两者是有结合点的。但这种结合不是原生的。太多的竞争技术已经出现了。
|
|
| 返回顶楼 | |
|
时间:2006-07-07
dlee得观点。我感觉这就要看你怎么看待ajax,是一种提高用户体验得方法还是一种全新得架构方式。这是我一直得观点。
引用 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中当用户滚动地图时,获取新的地图图片,由于是异步请求的,因此不会打断用户的操作流程。 而在传统的地图服务,每次滚动可能都需要刷新页面。 用一下微软的那个地图服务就可以感觉到明显的差距。 以前我说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/Lazso、还有M$的Atlas。 Atlas是M$开发的类似于Flash的一种技术,目前还只是一个vaporware,没有看到其庐山真面目。 Java Web Start相比之下只能局限于一些内部应用。 将来客户端和表现层的开发可能会完全没有Java的位置,这是Sun不愿意看到的,但是Sun在这场角逐中只不过是一个小角色。 |
|
| 返回顶楼 | |
|
时间:2006-07-07
真不希望看见java有那么一天。
不过jsf和ajax真的可以结合吗? |
|
| 返回顶楼 | |
|
时间:2006-07-09
Ajax Patterns and Best Practices的作者有个观点,
但是我不能接受这样的论点,即,一个服务器端框架是开发Ajax应用所必需的。 我不想引起争论,等着看吧. 我的观点是开发设计ajax与服务端设计是松散耦合的,或 没有web服务器可以开发ajax,如AJAX+SOA. JSF与ajax结合是个麻烦恶心的事情. |
|
| 返回顶楼 | |
|
时间:2006-07-10
zkj_beyond 写道 Ajax Patterns and Best Practices的作者有个观点,
但是我不能接受这样的论点,即,一个服务器端框架是开发Ajax应用所必需的。 我不想引起争论,等着看吧. 我的观点是开发设计ajax与服务端设计是松散耦合的,或 没有web服务器可以开发ajax,如AJAX+SOA. JSF与ajax结合是个麻烦恶心的事情. 个人觉得AJAX这样的技术应该能更方便的让更多的程序员或者非程序员来使用. 让普通人能作出不普通的事情,JSF是一个不错的途径. |
|
| 返回顶楼 | |
|
时间:2006-07-10
Sayor 写道 zkj_beyond 写道 Ajax Patterns and Best Practices的作者有个观点,
但是我不能接受这样的论点,即,一个服务器端框架是开发Ajax应用所必需的。 我不想引起争论,等着看吧. 我的观点是开发设计ajax与服务端设计是松散耦合的,或 没有web服务器可以开发ajax,如AJAX+SOA. JSF与ajax结合是个麻烦恶心的事情. 个人觉得AJAX这样的技术应该能更方便的让更多的程序员或者非程序员来使用. 让普通人能作出不普通的事情,JSF是一个不错的途径. 前途漫漫啊! myfaces的不少组件就是取自dojo。 照这样看来,JSF只能封装现有的ajax框架,也不可能自己实现客户端UI或库。如果这样干如GWT,google先做好客户端拖拉......复杂的脚本,然后再封装到服务器组件中。我还不如自己调用客户端类库呢? jsf和webwork2.0位置差不多。但webwork2.0封装的dojo让人(我)呕吐。 在arcgisserver领教过,用jsf/asp.net服务器控件实现类似ajax的东西。地图控件。如果想改改控件的,灾难啊。 http://www.esri.com/software/arcgis/arcgisserver/ |
|
| 返回顶楼 | |
|
时间:2006-07-10
另外sun“学“ms的asp.net,但ms的ajax实现另有高招吧。偶只知道Atlas。
不过ms作为xmlhttp的老祖,应该有些好东西的。 Sun 加入 OpenAJAX ,Sun也宣布赞助Dojo 基金会,看来sun也要在ajax作些事情。Sun将贡献自己的Ajax组件给dojo,那么估计不会在jsf规范中倒弄ajax了(无调查发言,反正jsf规范1.1没任何ajax内容,新的规范没兴趣看)。 偶不看好jsf+ajax。其实也很不看好JSF. |
|
| 返回顶楼 | |
|
时间:2006-07-11
zkj_beyond 写道 Sayor 写道 zkj_beyond 写道 Ajax Patterns and Best Practices的作者有个观点,
但是我不能接受这样的论点,即,一个服务器端框架是开发Ajax应用所必需的。 我不想引起争论,等着看吧. 我的观点是开发设计ajax与服务端设计是松散耦合的,或 没有web服务器可以开发ajax,如AJAX+SOA. JSF与ajax结合是个麻烦恶心的事情. 个人觉得AJAX这样的技术应该能更方便的让更多的程序员或者非程序员来使用. 让普通人能作出不普通的事情,JSF是一个不错的途径. 前途漫漫啊! myfaces的不少组件就是取自dojo。 照这样看来,JSF只能封装现有的ajax框架,也不可能自己实现客户端UI或库。如果这样干如GWT,google先做好客户端拖拉......复杂的脚本,然后再封装到服务器组件中。我还不如自己调用客户端类库呢? jsf和webwork2.0位置差不多。但webwork2.0封装的dojo让人(我)呕吐。 在arcgisserver领教过,用jsf/asp.net服务器控件实现类似ajax的东西。地图控件。如果想改改控件的,灾难啊。 http://www.esri.com/software/arcgis/arcgisserver/ 以上观点我表示反对。jsf对组件的定义使得可以做出任何带ajax的组件,并非必须封装已有的框架。没有自己的库难道就不能用ajax了?一个组件为啥要很全面的底层的库呢? 底层的库有那么难做吗?呵呵,我觉得ajax并非很复杂的技术,何必披上神秘的高深莫测的面纱? 修改控件的难度并不是一概而论的,依修改者对控件开发的熟悉和控件本身的设计质量而定的。如果让你自己做一个带ajax的控件/组件恐怕就不那么难了吧。 如果从ajax的角度出发可能会觉得没有必要和JSF扯上关系。如果从j2ee web开发的角度来看,ajax并非处处需要,也就是说开发人员并非必须知道如何用ajax来进行页面开发(虽然现在ajax很红火)。然而,一个web 项目总会需要或者习惯使用一些框架来搭建一个web构架比如最常用的struts,jsf,webwork等等。 JSF这样的被标准化了的框架我感觉总体来说还是设计合理,值得推广的。这样的框架会有更多的程序员来学习,更多的就业机会。jsf最重要的一点是页面组件和ide的集成,如果有开发非常好的ajax组件能够让不懂ajax的人来使用,jsf岂不是很好的一个桥梁? ajax毕竟只是浏览器里的技术,何必把它放得那么大? |
|
| 返回顶楼 | |
|
时间:2006-07-11
ajax确实不是复杂的技术,但对于javascript,css,dom,xhtml等技术我不认为很多web开发人员达到熟练的角度.
jsf/asp.net对 css/xhtml的封装我认为只能是良好。不知道现在怎么样了。因为我两年前用asp.net时,从来不敢用datagrid等服务器端控件,因为我怕它生成的代码还得让我自己修改,对服务器端控件不敢调整,怕得到一堆的style=""。对asp.net/jsf的状态放到<input type="hidden">或session里感到很难受。 确实,不原意学习xhtml/css的人用jsf/asp.net可能会好些,但如果你熟悉xhtml/css,还是request/response的webwork/spring mvc/struts来的亲切些。 。。。。。。。。。。。 这不想过多说jsf,可能我对它有偏见。 一会说说 jsf/asp.net服务器端组件 VS ajax UI. 我觉得这才是关键。实现的机制决定jsf服务器端控件对ajax的封装有些别扭。 待续........(饭去) 1 从 树状控件说起 。 2 从服务器端取数据是否还需要刷新整个页面。 3 如果用jsf,而用ajax,是否抛弃的jsf设计的初衷? |
|
| 返回顶楼 | |










