如何在 jsf/primefaces ajax 请求上设置超时?

How to set timeout on jsf/primefaces ajax request?

我正在使用 JSF2/Primefaces 我想知道如何使用 jsf 或 primefaces 实现超时回调?

我想将 ajax 请求的超时设置为 30 秒,如果请求超时,则做一些回调。

我脚踏实地调查了来源和found a hint. Not to clear but a start so I did some quick Googling and one of the first hits was a PrimeFaces forum topic关于设置超时

因此(奇怪的是我没有提前这样做),我打开了 documentation 并搜索了 timeout。很多点击,最后证明你可以做到

<p:ajax timeout="30000" ... />
<p:commandButton timeout="30000" ... />

等...所以它已经内置

为了作用于 'error',有一个 onerror 事件处理程序,它采用 javascript 函数的名称进行基本 ajax 处理

<p:ajax timeout="30000" onerror="doMyErrorThing" ... />
<p:commandButton timeout="30000" onerror="doMyErrorThing"... />

function doMyErrorThing(...) {
    // do your thing
}

在这种情况下调用服务器端方法调用 p:remoteCommand 一切都应该如您所愿