PF BlockUI - 在完成后保持gif动画

时间:2015-03-18 11:07:02

标签: ajax animation primefaces blockui

我有一个commandButton,它重定向到带有表单的页面。在commandButton操作中,我调用一个方法,该方法从DB加载数据以填充此表单,并重定向到它的页面。加载大约需要5-10秒 在commandButton onstart方法上,我在blockUI上调用show(),如果在oncomplete发生时调用hide(),它会在数据加载操作和页面重定向之前隐藏动画gif,因此它没有用处。此外,当我决定不调用hide时,所以我可以在数据加载时看到它,它会在ajax完成时停止动画(我猜)。
如何在数据加载期间使gif动画?

1 个答案:

答案 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