Ajax 启动和启动方法时出现问题

Ajax 启动和启动方法时出现问题,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我的主窗体有一个Primefaces轮询,其中包含一条我想用“正在进行”或“已完成”更新的消息。我的菜单项打开一个对话框,允许用户确认操作。如果是,我想启动轮询,调用服务器方法,并立即关闭对话框(因为该方法需要一段时间,我们不需要等待) 如果我在打开对话框的同一个按钮中启动轮询,它就会工作。如果在对话框上的按钮中启动轮询,将调用服务器方法,但直到方法完成后轮询才会启动。我用了“onclick”而不是“oncomplete”,但它没有帮助。我可以说,因为轮询侦听器方法只有在主方法完成时才会得到调用

我的主窗体有一个Primefaces轮询,其中包含一条我想用“正在进行”或“已完成”更新的消息。我的菜单项打开一个对话框,允许用户确认操作。如果是,我想启动轮询,调用服务器方法,并立即关闭对话框(因为该方法需要一段时间,我们不需要等待)

如果我在打开对话框的同一个按钮中启动轮询,它就会工作。如果在对话框上的按钮中启动轮询,将调用服务器方法,但直到方法完成后轮询才会启动。我用了“onclick”而不是“oncomplete”,但它没有帮助。我可以说,因为轮询侦听器方法只有在主方法完成时才会得到调用。我已经浏览了@BalusC关于行动顺序等的帖子,但我知道我在这里遗漏了一些简单的东西

示例代码:

(我的表格)


(jobModal)



如何使用
onstart
?我认为onclick是第一个执行的?但是如果我从menunitem启动轮询,然后如果用户不想继续对话框,我可以停止它。我在p:poll上使用了
async=“true”
,解决了类似的问题。使用
onstart
怎么样?我认为onclick是第一个执行的?但是如果我从menunitem开始轮询,然后如果用户不想继续对话框,我可以停止它。我在p:poll上使用了
async=“true”
,它解决了类似的问题。
<p:poll widgetVar="statusPoll" interval="1" autoStart="false" update="myStatus"  
    listener="#{bean.pollListener}"  
stop="#{bean.pollStopped}"/>  
<h:outputText id="myStatus" value="#{bean.status}"/>

<p:menuitem value="Start job" onclick="PF('jobModal').show();">
<p:commandButton value="Run the job"
    action="#{bean.runMethod}"
    onclick="PF('statusPoll').start();PF('jobModal').hide();"/>