Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF/Primefaces AJAX页面呈现回调_Ajax_Jsf_Primefaces - Fatal编程技术网

JSF/Primefaces AJAX页面呈现回调

JSF/Primefaces AJAX页面呈现回调,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我的页面布局(带Primefaces)有一个包含所有内容的西、北和中央布局面板。中心布局包括一个iframe,每次选择菜单选项(在西面板上)时,只更新中心内容(使用Ajax) 当页面呈现/加载时,我想在另一个面板上显示“加载gif”。我使用了以下代码: xhtml片段 <p:ajaxStatus style="width:32px; height:32px;" id="ajaxStatusPanel"> <f:facet name="start">

我的页面布局(带Primefaces)有一个包含所有内容的西、北和中央布局面板。中心布局包括一个iframe,每次选择菜单选项(在西面板上)时,只更新中心内容(使用Ajax)

当页面呈现/加载时,我想在另一个面板上显示“加载gif”。我使用了以下代码:

xhtml片段

 <p:ajaxStatus style="width:32px; height:32px;" id="ajaxStatusPanel">
            <f:facet name="start">
                <p:graphicImage value="/resources/img/progress.gif" />
            </f:facet>

            <f:facet name="complete">
                <h:outputText value="" />
            </f:facet>
    </p:ajaxStatus>


但这会短暂地显示加载程序,因为ajax请求一结束它就完成了。但是,页面加载/呈现可能需要更长的时间。有什么方法可以提供“页面呈现”回调吗?

当您在
iframe
中实际加载内容时,您可以通过向页面添加一点javascript来解决此问题,尤其是
onload
事件处理程序

例如:

<iframe id="navigation" src="#{layout.navigation}" onload="hideDialog()"
style="position: absolute; top: 0px; left: 0px; bottom: 0px; right: 0px; width: 100%; height: 100%; border: none; margin: 0; padding: 0; overflow: hidden; z-index: 999999;">
</iframe>
您可能需要在生成的html+javascript中进行一些搜索,以找到要使用的确切名称/ID(以便获得对该对话框的引用)

<script>
function hideDialog()
{
if(statusDialog != undefined)
statusDialog.hide();
}
</script>