Ajax更新p:poll

时间:2016-12-16 12:27:55

标签: primefaces

在p:poll上的每个ajax更新中,启动一个新的附加计时器。 我怎么能避免呢?经过几次ajax更新后,我的调查每秒执行多次。

此代码演示了它:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">
  <f:view>
    <h:head>
    </h:head>
    <h:body>
      <h:form id="testForm">
        <p:commandButton value="Click Me" process="@this" update="@all"/>
        <p:poll id="myPoll" widgetVar="myPollWidget" interval="5" onstart="console.log('Poll....');" process="@this"/>        
      </h:form>
    </h:body>
  </f:view>
</html>

我知道我可以通过

停止民意调查来避免它
onclick="if(PrimeFaces.widgets['myPollWidget']){PF('myPollWidget').stop();}"

在commandButton中。

但是,有没有更容易,更通用的方法来避免这个问题?

1 个答案:

答案 0 :(得分:0)

Primefaces的poll组件具有autoStart和boolean类型的属性。因此,您可以将这些属性绑定到bean变量,并使用commandButton的actionListener更改它们。