jsf - 如何在 JSF 组件中监视异步/后台线程状态并获取通知

标签 jsf asynchronous notifications refresh monitor

我在 Web 应用程序中创建了几个线程,并且在 JSF 页面中有一个数据表组件。

我想自动更新表格以显示线程的当前状态。在这种情况下我可以使用任何预构建组件吗?

最佳答案

I created few threads in a web application

我衷心希望您did it the right way因此它不会导致一场史诗般的灾难。


I would like to update the table automatically to show the current status of thread. Is there any prebuild component I can use in this scenario?

您基本上是在寻找一种称为“轮询”或“推送”的技术。轮询的基本概念是使用JavaScript的setInterval()setTimeout()定期向服务器发出 (ajax) HTTP 请求,并让它相应地处理结果。推送的基本概念是打开一个持久的 HTTP 连接并让服务器通过它发送小消息,这可以通过其他方式完成 WebSocket in JavaScriptJSR356 API in Java EE 7 .

标准 JSF 实现不提供任何现成可用的轮询或推送组件。对于即将推出的 JSF 2.3,新的 <f:websocket>标签当前正在进行中(另请参阅 issue 1396 )。

您最好的选择是带有隐藏命令链接/按钮的隐藏表单,其中包含 <f:ajax>然后通过 setInterval() 调用它。组件库如PrimeFaces但是,提供开箱即用的组件,另请参阅 <p:poll> showcase <p:push> showcase一些具体的例子。 JSF 实用程序库 OmniFaces <o:commandScript> showcase中有民意调查示例和 <o:socket> showcase几个推送示例(新标准 JSF <f:websocket> 将主要基于 <o:socket> )。

另请参阅:

关于jsf - 如何在 JSF 组件中监视异步/后台线程状态并获取通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13880022/

相关文章:

jsf - 如何在多个类实现中使用 CDI 限定符?

jsf - 在 EL 表达式 : how to make it robust? 中将数据表对象 var 作为参数传递

javascript - 如何将同步ajax转换为异步?

javascript - mobx 商店中的 promise

android - 无法在我的国家使用 GCM

Android:如何在 android 4.2 上折叠状态栏?

android - TaskStackBuilder.addParentStack() 和 TaskStackBuilder.addNextIntent() 有什么不同?

jsf - 如何为空输入组件设置自定义非空值 dispite INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL = true

javascript - 如何使用 "q"模块重构 mongoose 代码?

jquery - 将 css-class 添加到 primefaces 数据表 <table>-element