Jsf p:投票不立即开始
嗨,我真的是Jsf和Primefaces世界的新手,我有一个关于PrimeFacesPoll组件的简单查询,如下所示 我有一个登录页面,一旦用户通过身份验证,我就将他重定向到welcome.xhtml页面,在那里我必须每2分钟轮询一次数据库服务,为此我使用了primefaces轮询组件Jsf p:投票不立即开始,jsf,primefaces,polling,Jsf,Primefaces,Polling,嗨,我真的是Jsf和Primefaces世界的新手,我有一个关于PrimeFacesPoll组件的简单查询,如下所示 我有一个登录页面,一旦用户通过身份验证,我就将他重定向到welcome.xhtml页面,在那里我必须每2分钟轮询一次数据库服务,为此我使用了primefaces轮询组件 它工作正常,每2分钟轮询一次,但我想要的是,一旦用户通过身份验证并进入欢迎页面,轮询服务应该立即启动,而不是等待2分钟的时间间隔。为了实现这一点,我尝试使用autoStart=“true” 但它不起作用 让我
它工作正常,每2分钟轮询一次,但我想要的是,一旦用户通过身份验证并进入欢迎页面,轮询服务应该立即启动,而不是等待2分钟的时间间隔。为了实现这一点,我尝试使用autoStart=“true”
但它不起作用
让我知道我是如何做到这一点的
非常感谢您的帮助。如果您希望立即调用您的方法,请使用带有autoRun=“true”的RemoteCommand,不要使用轮询组件的autoStart功能,当触发RemoteCommand的oncomplete时,按如下方式手动启动轮询(未经测试):
但为什么?如果autoRun
是一个默认选项,而TS只是错误地使用了它,那么他应该学会正确的方法,而不是一些奇怪的解决方法轮询组件的默认行为是在间隔设置后进行第一次轮询,autoRun只指定是自动启动还是手动启动。这很方便,因为组件假定您已经在页面加载中加载了初始数据,所以下一次轮询应该在一段时间后开始。我建议使用remoteCommand进行第一次调用,然后启动轮询,以便安排下一次调用。这不是一个奇怪的解决方法,它是解决当前问题的一种方法。这个答案应该被接受。OP应该这样做,并投票表决@奥赞塔巴克:请在回答中添加评论,这是一个很好的补充
<p:poll interval="120" listener="#{databaseService.getJob}" autoStart="true" />
<p:poll id="databaseServicePoll" interval="120" listener="#{databaseService.getJob}" autoStart="false" />
<p:remoteCommand name="firstDatabaseServiceCall" actionListener="#{databaseService.getJob}"
autoRun="true" oncomplete="databaseServicePoll.start()" />