我有一个commandButton,它重定向到带有表单的页面。在commandButton操作中,我调用一个方法,该方法从DB加载数据以填充此表单,并重定向到它的页面。加载大约需要5-10秒
在commandButton onstart方法上,我在blockUI上调用show(),如果在oncomplete发生时调用hide(),它会在数据加载操作和页面重定向之前隐藏动画gif,因此它没有用处。此外,当我决定不调用hide时,所以我可以在数据加载时看到它,它会在ajax完成时停止动画(我猜)。
如何在数据加载期间使gif动画?
答案 0 :(得分:0)
我尝试使用带有h:graphicImage内容的blockUI来显示加载器。
<p:blockUI id="blockUI" block="contentToBlock" widgetVar="loader">
LOADING<br/>
<h:graphicImage library="images/" name="loader.gif" height="60px" width="60px"/>
</p:blockUI>
在这种情况下,在重定向到另一个页面之前,gif在ajax请求完成后停止了动画,并在数据加载期间冻结。
<p:commandButton value="Redirect" id="someID" ajax="false"
onclick="PF('loader').show()"
action="#{redirectToNextPageAndLoadDataAction()}"/>
使用ajax = false与onclick配对使得它可以像我想要的那样工作,可以看到动画gif直到页面重定向,虽然我从不以这种方式隐藏它,所以当你使用浏览器返回上一页时,用户界面仍在那里打开,用户界面被封锁,这不太好,但我正在努力。
更新:此最后一个错误仅发生在Firefox
中