Jsf p:轮询已停止,但仍激发网络呼叫
我必须在JSF中使用一些条件停止并启动一个Jsf p:轮询已停止,但仍激发网络呼叫,jsf,primefaces,backing-beans,Jsf,Primefaces,Backing Beans,我必须在JSF中使用一些条件停止并启动一个p:poll。。。我可以通过将投票放入panelgrid并使panelgrid呈现。。。我认为它可以工作,因为在我将panelGrid渲染为false之后,pollOperationStatus没有被调用。。。当我显示它时,它也会重新启动。。 但仍有一个网络呼叫正在启动;把很多事情搞砸了;如何处理 <h:form> My main form </h:form> <h:form id="my
p:poll
。。。我可以通过将投票放入panelgrid并使panelgrid呈现。。。我认为它可以工作,因为在我将panelGrid渲染为false之后,pollOperationStatus没有被调用。。。当我显示它时,它也会重新启动。。
但仍有一个网络呼叫正在启动;把很多事情搞砸了;如何处理
<h:form>
My main form
</h:form>
<h:form id="mypollform">
<p:outputLabel id="currentTime" value="#{myBean.counter}" />
<h:outputText value="#{myBean.startPoll}" id="counter11" />
<p:panelGrid rendered="#{myBean.startPoll}">
<p:poll interval="8" widgetVar="poller" autoStart="true"
listener="#{myBean.pollOperationStatus}"
update=":#{p:component('newServerID')},:#{p:component('mypollform')}" />
</p:panelGrid>
</h:form>
我的主要形式
:
可以使用客户端api启动和停止轮询;或者绑一个
将布尔变量设置为stop
属性,并随时将其设置为false
任意时间
在您的情况下,这将出现在javaScript
中:
PF('poller').stop()
orPF('poller').start()代码>
或者将boolean
bean属性绑定到p:poll的stop
属性:
<p:poll stop="#{myBean.stopPoller}" interval="8" widgetVar="poller" autoStart="true"
listener="#{myBean.pollOperationStatus}"
update=":#{p:component('newServerID')} :#{p:component('mypollform')}" />
还要注意,update
attribute中的组件ID来自您参考的文档:“可以指定要更新的多个组件,并提供一个ID列表,以逗号、空格或甚至两者分隔。”PrimeFaces ajax在这里与基本JSF不同,但最好遵循基本JSF。(离题:近3000名众议员……接近票数)该死的,他们监督得如此之快。。。谢谢(离题:是的,我正在研究它^^^)那么你的意思是你可以开始投票,停止投票,但它会继续进行网络通话?如果你再启动它,它会重复呼叫吗?我没有再启动..但停止后,会有网络呼叫,你原来的描述不完全正确。实际上,停止没有正常工作。。。@Selaron的答案是您的解决方案Toping works!。。它不再召唤听众了。。。它只是触发了一个网络请求,@Selaron的回答是:你的解决方案专注于此,如果有效,请接受答案