1

我有一个带有两个按钮 BUTA 和 BUTB 的 JSF2 Primefaces 页面 MultiAjax.xhtml。该页面有一个 ViewScoped ManagedBean MBMultiAjax,它有两个 actionmethods butAAction 和 butBaction ...这两个方法都有一个 startTime 和 endTime 打印到 sout ...

两者都查询数据库并将结果显示在页面上的两个不同表中。

如果我先按 BUTA,然后按 BUTB,我发现方法 butBaction 的执行在 butAAction 完成后开始,这可以从这两种方法的 starttime 和 endtime 的sout 中得到验证......

我希望由于 Ajax 是异步的,因此这两种方法的执行开始时间必须只有很小的差异,而不是一个接一个执行的同步。

为什么会这样?

4

1 回答 1

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.
于 2013-04-15T11:13:50.437 回答