首页 > 解决方案 > 如何在 jsf/primefaces ajax 请求上设置超时?

问题描述

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

我想让 ajax 请求的超时时间为 30 秒,如果请求超时,请执行回调。

标签: jsfprimefacesjsf-2.2

解决方案


我把脚放在嘴边,调查了源头,找到了线索。不是要清楚,而是开始,所以我做了一些快速的谷歌搜索,第一个点击是关于设置超时的PrimeFaces 论坛主题

因此(奇怪的是我没有预先这样做),我打开了文档并搜索了timeout. 很多热门歌曲最终证明你可以做到

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

等等......所以它已经内置了

为了处理“错误”,有一个 onerror 事件处理程序,它采用 javascript 函数的名称进行基本的 ajax 处理

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

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

在这种情况下调用服务器端方法调用 a p:remoteCommand,一切都应该是你想要的


推荐阅读