我是最新的主要人物。我试图做的是填写啊:outputText,但我必须使用p:poll,因为我发出请求而我必须等待响应,这可能需要一些时间才能得到答案。
<h:form id="form1">
<p:poll widgetVar="headerPoll" interval="3" listener="#{bean.refreshHeader()}" update="form1" />
</h:form>
<h:form id="bodyForm">
<p:commandButton actionListener = "#{bean.loadBody}" ajax="false" value="load body" /> <br/><br/>
<h:outputText id="bodyText" escape="false" value="#{bean.body}" />
<p:poll widgetVar="bodyPoll" interval="3" listener="#{bean.refreshBody()}" update="bodyText" />
</h:form>
关联的bean:
public void refreshHeader()
{
if(header != null)
{
RequestContext reqCtx = RequestContext.getCurrentInstance();
reqCtx.execute("headerPoll.stop();");
}
}
public void refreshBody()
{
if(body != null)
{
RequestContext reqCtx = RequestContext.getCurrentInstance();
reqCtx.execute("bodyPoll.stop();");
}
}
问题出在refreshHeader()
功能。当headerPoll.stop()
执行时,它会停止第一次和第二次轮询。我只需要停一个。
如何才能停止其中一项民意调查?
答案 0 :(得分:0)
看到你在轮询中设置了interval=3
,这就是为什么这两个函数被并行调用的原因。尝试在不同的时间运行轮询。希望它能起作用:))