1 JSF优点:
是标准。
组件化,开发高效率。适用于客户不是很关心界面是什么样的应用。
JSF缺点:
局限于JSP的tag,与其他view技术兼容性不好。
最好仅仅拿来使用,自己修改和扩展非常麻烦,繁琐。
组件集成度太高,不够灵活。
执行效率也不是太好。
总结: 大家都拿它跟struts来比较,sun的确是看到了struts很好,自己又缺这样一种是标准的framework,于是jsf就诞生了。jsf和struts虽然都达到相同的功能,但是各自应用在不同的需求上。
jsf开发起来的确是快,但是如果有什么需求让你不得不接触到底层的实现或者创建自己的component,那就很尴尬了,因为jsf用起来方便,因为它都给你封装好了,底层的东西很复杂,何况每一种jsf的实现都是不同的,因此修改起来会很痛苦。因此将来如果要做一些客户不是很关心界面是什么样的应用,而且强调组件的重用和开发的效率的项目。例如假设mysql新开发了一代数据库,想做web console,那么jsf就很方便了。或者说航天中心的监控软件,想做一个console,用jsf也很方便快捷。
2 AJAX优点:
节省网络带宽,降低服务器负载。
流畅的用户体验;都是浏览器标准组件:html,javascript,css,只要有浏览器就能用。
AJAX缺点:
浏览器没了前进和后退;
javascript的兼容性,要保证各个浏览器,每个浏览器的不同版本都能正常运行,实在不容易,就算是像google之类的大公司,做出来的ajax还是有bug。
开发复杂度高,测试和调试都很不方便。开发出来的东西质量有高有低。
因为不用刷新整个页面就可以响应用户的请求,有的用户不习惯这样,因此需要做更人性化的设计。
对搜索引擎的支持不好,需要自己另外来做。
3 Flex优点:
非常棒的客户体验,对2D和矢量的良好支持,甚至可以做出很优秀的游戏。
真正实现cs结构,实现服务器/客户端分离,方便开发,节省成本。
同AJAX一样,节省带宽,降低服务器负载。
实现分布式计算。例如只需要把关键数据传到客户端就可以自动生成很漂亮的动态图表,这点是其他技术实现不了的。
Flex缺点:
浏览器没了前进和后退。
需要flashplayer支持,一个非标准的activex控件。
由于swf文件较大,因此最开始时需要等待一会儿。
不支持搜索引擎,得自己另外实现。
目前来说flex对文字的支持不太好,因此如果你的网站是基于文字的,那flex技术不是很适合。(例如新浪网,满屏幕全是文字,你做成flex也全得是文字,根本看不出区别)
可视化工具FlexBuilder是要钱的,Flex Live Data Service也是要钱的。
编译速度慢,文件多的时候编译速度很慢。
和HTML交互起来很麻烦,不如ajax。