Рендеринг блоков асинхронных страниц с JSF + RichFaces - PullRequest
2 голосов
/ 09 сентября 2010

Я хочу визуализировать 6 блоков на странице асинхронно, используя поддержку richfaces a4j. Для этого я определил 6 компонентов a4j: region и a4j: commandLink для обновления компонентов вручную.

Вот соответствующий код:

<ui:define name="body">
    <h:form id="dashboardform">
     <div class="table_container" style="width:99%">
        <h:panelGrid id="dashboadPanel" columns="3">

            <a4j:region id="resourceGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box">
                        <ui:include src="dashboard_resourceGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>

            <a4j:region id="profileGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box" >
                         <ui:include src="dashboad_profileGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>

            <a4j:region id="reportGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box" >
                        <ui:include src="dashboard_reportGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>

            <a4j:region id="installedBaseGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box" >
                        <ui:include src="dashboard_installedBaseGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>

            <a4j:region id="simcardGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box">
                        <ui:include src="dashboard_simcardGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>

            <a4j:region id="orderOverviewGraphRegion">
                <h:panelGroup>
                    <div class="rounded_box dashboard_box" id="order">
                        <ui:include src="dashboard_orderOverviewGraph.xhtml"/>
                    </div>
                </h:panelGroup>
            </a4j:region>
        </h:panelGrid>

            <h:panelGrid id="dashboadRefreshPanel" columns="1"  width="100%">
                <a4j:commandButton value="#{I18n.messages['dashboard.btn.refresh']}" 
                    action="#{dashboardBean.doRefresh}" reRender="resourceGraphRegion, profileGraphRegion, reportGraphRegion, installedBaseGraphRegion, simcardGraphRegion, orderOverviewGraphRegion"
                     image="/static/images/refresh.png" style="border:0px; margin-right: 20px; padding: 0px; float: right;" />
            </h:panelGrid>
    </div> 

Однако при ручном запуске a4j: commandLink вся страница становится неактивной (неактивной) и появляется значок загрузки. Я хотел бы, чтобы страница открывалась очень плавно, и чтобы все 6 областей отображались асинхронно, поэтому пользователь получает плавный опыт и не должен ждать завершения всех областей .

1 Ответ

1 голос
/ 11 сентября 2010

Для управления уведомлением о загрузке вы можете использовать

<a4j:status id="commonstatus"  startText="In progress..." stopText="Complete"/>

Это позволяет вам управлять полем состояния почти любой "ссылки", чтобы использовать этот контроль состояния.

учебник

...