我想在用户空闲时自动更新数据表(在客户端)。我将 Primefaces 3.5 与 glassfish 一起使用,我的想法如下:
我boolean autoUpdate
在 bean 中有变量。用户可以打开/关闭自动更新。
我创建了两个组件:p:poll
和p:idleMonitor
.
有idleMonitor
两个事件,触发更新
<p:ajax event="idle" oncomplete="myPoll.start();" />
<p:ajax event="active" oncomplete="myPoll.stop();" />
这部分没问题。问题是,如何禁用idleMonitor
whenautoUpdate
设置为False
?当我做
<h:panelGroup id="updatePanel" rendered="#{cc.attrs.bean.autoUpdate}">
....
</h:panelGroup>
它只有在我开始时才有效,autoUpdate = false
而且我只能切换一次模式。渲染后无法更改。我也试过
<p:ajax event="idle" oncomplete="#{cc.attrs.bean.autoUpdate ? 'myPoll.start();' : ''}" />
但它也没有工作。#{cc.attrs.bean.autoUpdate}
永远不会改变。即使我在上面调用 upadte,我也可以看到变量在另一个地方发生了变化。
所以,我的问题是:有什么方法可以在渲染后禁用 idleMonitor?或者对于空闲用户的可选定期更新,更好的解决方案是什么?