我們有一個頁面,其中主要內容區域由ui:includes
控制,基本上我們有一個h:panelGroup
與rendered
條件和ui:include
它的內部。緩慢與多個用戶界面:包括
像這樣:
<h:panelGroup rendered="#{bean.page.id eq bean.page1ID}">
<ui:include src="page.xhtml"/>
</h:panelGroup>
我們對那些10。每個頁面都非常複雜,有幾個自己的豆子。我們這樣做的原因,而不是動態ui:include
是因爲有一個錯誤,其中ui:include
以外使用的@ViewScoped
豆在ui:include
內部重新實例化,從而導致各種問題。
任何時候我們執行一些操作都需要幾秒鐘的時間(通常是7到15)來執行操作。例如,當我們更改bean.page
屬性並請求渲染時。即使我們做一些簡單的事情,比如保存一個幾乎不涉及其他任何東西的價值,它也是非常緩慢的。如果我刪除所有h:panelGroups
和ui:includes
(除了一個),那麼該網站非常快(1到2秒響應)。據我所知,ui:includes
中的所有頁面和它們使用的bean都得到了實例化。
我們可以做些什麼來加快速度?我們在樹脂4.0.32和primefaces 3.5上使用mojarra 2.1.13。
謝謝。
我建議你使用[自定義facelet標籤](http://www.mkyong.com/jsf2/custom-tags-in-jsf-2-0/)而不是''。使用JSF邏輯包含整個頁面可能會帶來問題,因爲它們在構建頁面時包含在內,而不是在呈現時包含。 [看看我用'@ ViewScoped' bean遇到的問題](http://stackoverflow.com/questions/14518133/primefaces-multiple-dynamic-content-panels-to-be-displayed)。 –
2013-04-12 17:12:07
我有同樣的問題,這就是爲什麼我去'h:panelGroup'和'rendered'而不是動態的'ui:include'。我必須查看自定義facelet標籤。 – casolorz 2013-04-16 13:20:00