Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf p:轮询已停止,但仍激发网络呼叫_Jsf_Primefaces_Backing Beans - Fatal编程技术网

Jsf p:轮询已停止,但仍激发网络呼叫

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

我必须在JSF中使用一些条件停止并启动一个
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()
or
PF('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的回答是:你的解决方案专注于此,如果有效,请接受答案