服务器如何将异步更改推送到JSF创建的HTML页面?

前端之家收集整理的这篇文章主要介绍了服务器如何将异步更改推送到JSF创建的HTML页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我们创建JSF页面时,客户端请求允许使用 Java代码和HTML的组合动态生成HTML.
我们可以使用JSF框架在HTML页面中引入钩子,允许服务器根据服务器以后发生的异步事件更新HTML页面,通常通过不同的线程?

解决方法

直到即将到来的JSF 2.3< f:websocket> ( spec issue 1396,自 Mojarra 2.3.0-m05以来已经可用),标准JSF API不提供这方面的工具.您现在需要前往第三方JSF库.

> OmniFaces<o:socket>(JSR356 WebSocket CDI)
> PrimeFaces<p:socket>(气氛)
> ICEfacesICEpush(长轮询)
> RichFaces<a4j:push>(大气JMS)

即将到来的JSF 2.3< f:websocket>是< o:socket>上的largely based.

PrimeFaces和RichFaces在引擎盖下使用Atmosphere(在没有Maven的情况下安装很麻烦),RichFaces将JMS添加到其上(因此它不会支持JMS,因此可以划分Tomcat).大气支持具有后退到SSE和长轮询的Websockets. ICEfaces是基于古老的长轮询技术.所有这些都不会实现Java EE 7后来引入的本机JSR356 WebSocket API.

OmniFaces使用原生JSR356 WebSocket API(在所有Java EE 7服务器和Tomcat 7.0.27中都支持).因此,设置和使用(一个JAR,一个上下文参数,一个标签和一个注释)也是最简单的.它只需要CDI(不难install on Tomcat),但它使您甚至可以从非JSF工件(例如@WebServlet)推送.对于安全和JSF查看状态保持原因,它只支持单向推送(服务器到客户端),而不是相反.为此,您可以通常使用JSF ajax.

或者,您也可以使用轮询而不是推送.每个ajax感知的JSF组件库都有一个< xxx:poll>零件.这允许您向服务器发送exery X秒ajax请求,并在必要时更新内容.它只是比推动效率低.

也可以看看:

> How to monitor asynchronous/background thread status and get notifications in a JSF component
> Real time updates from database using JSF/Java EE
> Notify only specific user(s) through WebSockets,when something is modified in the database

猜你在找的HTML相关文章