我有一个JSF2 Primefaces页面MultiAjax.xhtml,带有两个按钮BUTA和BUTB。 该页面有一个ViewScoped ManagedBean MBMultiAjax,它有两个actionmethods但是Action和butBaction ...这两个方法都有一个startTime和endTime打印到sout ...
查询数据库并在页面上的两个不同表中显示结果。
如果我先按BUTA然后按BUTB,我发现方法butBaction的执行在butAction完成之后开始,这是从两个方法的启动时间和结束时间的sout验证...
我希望由于Ajax是异步的,因此两个方法的执行开始时间必须是差别很小,而不是同步执行的另一个。
为什么会这样?
答案 0 :(得分:2)
默认情况下<p:commandButton
将对请求进行排队,您应该添加async
属性并将其设置为true:
<p:commandButton async="true" ... />
来自Primefaces文档:
async
Default: FALSE
Type: Boolean
Description: When set to true, ajax requests are not queued.