在AJAX调用时显示进度条

时间:2015-11-01 15:11:56

标签: jsf jsf-2.2

我想在AJAX调用期间在网页的角落显示一些进度条。我注意到,当Internet连接速度很慢时,用户无法看到正在进行的AJAX调用。有核心JSF的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以在onevent上使用f:ajax属性。

<h:form>
    <h:commandButton value="Test" action="#{ajaxTestBean.myAction}">
        <f:ajax onevent="myFunc"/>
    </h:commandButton>
</h:form>

<script type="text/javascript">
    function myFunc(ajaxObj){
        if('begin' == ajaxObj.status){
            //Start or Show your Spinner
        }else if('complete' == ajaxObj.status){
            //Stop or Hide your Spinner
        }
    }
</script>

此处myFunc通常会被调用3次。

  • 启动Ajax请求[status=='begin']。
  • 完成Ajax请求[status=='complete']
  • 完成Ajax请求 结果[status=='success']