在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中。
但是,有没有更容易,更通用的方法来避免这个问题?
答案 0 :(得分:0)
Primefaces的poll组件具有autoStart和boolean类型的属性。因此,您可以将这些属性绑定到bean变量,并使用commandButton的actionListener更改它们。