richfaces a4jサポートを使用して、ページ上に6つのブロックを非同期でレンダリングしたいと思います。これを実現するために、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つのリージョンすべてが非同期にレンダリングされるため、ユーザーはスムーズなエクスペリエンスを取得し、すべてのリージョンが完了するのを待つ必要がないことです。