使用ICEFaces推送技术

时间:2009-04-16 17:12:01

标签: java ajax jsf

我们正在研究/调查ICEFaces AJAX推送技术的可能用途。想知道是否有人使用过这个?他们遇到了什么问题?并且总体印象如此。

我们正在使用Websphere 6.1应用服务器 - 任何已实现此功能的人都在Websphere上实现了它。

我们正试图在我们的网站上解决一个问题,我们希望用户能够对产品进行投标并实时获得出价。

我们目前正在使用MyFaces + Tomahawk + ​​Richfaces +我们自己的一些组件,但我们正处于可以根据需要离开Richfaces的地步。

8 个答案:

答案 0 :(得分:1)

按宣传方式工作,在家庭和办公室使用很多。

如果使用springsecurity而不是将ondemandrender与请求范围的bean一起使用,则会丢失渲染之间的安全上下文。

Sessionrender似乎没有这个问题。

最近我看到了一个很好的例子(虽然我的一些更好:-))在书中的缝隙中,他们有一些关于冰面的部分。

sessionrenderer比ondemandrenderer或intervalrenderer更容易使用,但没有那么多的功能。

这是一个非常基本的例子。还使用了其他一些技术,我们的小项目以集成不同技术而闻名。 http://web.me.com/cannonwc/Site/Blog/Entries/2008/11/7_An_example_of_ajax_Push.html

主网站上实际上有更多东西

www.mooncatventures.com和博客网站www.mooncatventures.com/blogs

答案 1 :(得分:1)

首先让我说Icefaces是一个非常可靠的产品,它为我们节省了大量的开发时间,以获得一个好的,现代感的Web应用程序而没有团队的大量JavaScript知识。

那说Icefaces确实有它的瑕疵。许多很酷的功能,如部分提交,会导致客户端和服务器之间来回喋喋不休。状态保存在服务器上并反映在客户端中,这会在客户端和服务器之间产生大量的来回流量。为了获得最佳性能,您将不得不深入挖掘并使用一些JavaScript,这是您首先要避免的事情。甚至验证也需要在服务器端完成,但我相信这是一个JSF限制,而不是Icefaces限制。

我也不理解Icefaces如何在似乎是次要版本之间更改组件API。整个树组件在1.7.2和1.8之间变化。树组件是丑陋和有限的,所以这是一个值得欢迎的变化,但仍然。我们觉得1.8被强加给了我们,这引导我进入下一点。

Icefaces将其作为二等公民支付给用户的非支持合同。在Icefaces 1.7.2和1.7.2 SP1之间,推送机制出现了一次重大的倒退,导致它在我们的应用程序中完全失败。可用的唯一修复是移动到1.8(具有API更改)或使用1.7.2-SP2,这仅适用于支持合同中的客户。不要忘了一分钟IceFaces的目的是向你出售支持。 1.7.1的唯一修复是手动修补发布的源代码,并不可怕,但我希望更好。

那说我发现IceFaces是一个有用的产品,并且比RichFaces好得多,特别是在文档的质量方面。但是如果我现在开始的话,如果你想要一个真正的开源产品或Flex,如果你想要一个非常丰富和厚实的客户端式产品,我也会看看GWT。有所有问题的事件我仍然会推荐Icefaces,但它肯定会更好

答案 2 :(得分:0)

我简要介绍了一个原型。它像宣传的那样工作。使用AJAX推送这个或任何其他框架时要考虑的重要事项是对您的网络服务器的影响。为了完成AJAX推送,客户端要么持有与服务器的持久连接,要么使用轮询,这两者都会对高需求的Web应用程序产生影响。我对Websphere没有经验,但是你想要研究给定应用程序容器(Websphere)的具体建议,以及你将使用Ajax推送的页面上的负载。

我认为值得注意的是,还有其他框架可以做一个非常好的和灵活的AJAX推送工作 - 因为我总是倾向于开源解决方案(我们运行一个非常有效的Apache / Tomcat / Spring / DWR堆栈)我建议查看DWR

http://directwebremoting.org/

答案 3 :(得分:0)

据我所知,DWR正在使用JavaScript编程模型。使用ICEfaces,您根本不需要JavaScript。从维护的角度来看,比AJAX推送本身更有趣。虽然在1.8版本中,使用AJAX推送变得非常容易,但每个人都应该对其进行评估。

我将在即将出版的ICEfaces书中讨论一些细节; - )。

答案 4 :(得分:0)

我认为将ICEfaces与RichFaces混合是没有意义的。 AJAX部件不兼容。 MyFaces上的ICEfaces没问题。

瓷砖?你想保留瓷砖?当使用与ICEfaces非常紧密集成的Facelets时,这没有任何意义。随着Facelets成为JSF 2.0的标准,无论如何都要考虑从Tiles更改为Facelets。

答案 5 :(得分:0)

我们现在正在转换项目中使用它(将JSF应用程序从IBM的Portlet JSF实现移植到Tomcat上的IceFaces),正如其他所有人所说,它的工作方式与广告一样。我们进行了很少的修改以适应实施变化。到目前为止,我印象深刻。

答案 6 :(得分:0)

我们正在使用ICEFaces,并且很容易开发出丰富的应用程序。主要功能是可扩展的Ajax Push服务器。

ICEFaces使用来自客户端的持久客户端连接,如果服务器不使用异步套接字,则需要为每个连接创建一个线程。作为 用户数量增加,线程上下文切换可能会对性能产生负面影响。好消息是ICEFaces已经支持(Glassfich,Jetty,Tomcat,JBoss)的ARP(异步请求处理)。除此之外,实现还附带了一个异步HTTP服务器,您可以将其与当前环境(例如Websphere)一起使用。

“使用ICEFaces,你根本不需要java脚本”。这在许多情况下都很棒,但有时您不想进行ajax调用以仅选中复选框或激活文本字段。添加javascript来做到这一点不是火箭科学,但它会让你的代码稍微过时。

ICEFaces确实将其付费用户的合同视为一等公民(这是我支付支持后的预期:D),但您始终可以访问代码。可以很容易地下载标签版本并使用ant编译它。

答案 7 :(得分:0)

您可以在没有IceFaces组件的情况下使用Icefaces Push。我们使用了使用Primefaces组件的Icefaces Push。它可以协同工作但并非所有组件都兼容,其中一些组件在执行Push时会出现Javascript错误。