주 콘텐츠 영역이 ui:includes
에 의해 제어되는 페이지가 있습니다. 기본적으로 조건과 ui:include
이 포함 된 h:panelGroup
이 있습니다. 이처럼다중 배율로 느려짐 : 포함
:
<h:panelGroup rendered="#{bean.page.id eq bean.page1ID}">
<ui:include src="page.xhtml"/>
</h:panelGroup>
우리는 그 중 약 10 있습니다. 각 페이지는 꽤 복잡하고 몇 개의 콩이 있습니다. 역동적 인 ui:include
대신 렌더링 된 트릭을 수행하는 이유는 ui:include
바깥에서 사용되는 @ViewScoped
bean이 ui:include
내부에서 다시 인스턴스화되어 모든 종류의 문제를 일으키는 버그가 있기 때문입니다.
우리가 어떤 행동을 취할 때마다 행동이 수행되기까지 수초 (보통 7-15 시간)가 걸릴 것입니다. 예를 들어 bean.page
속성을 변경하고 렌더링을 요청할 때 아무 것도 포함하지 않는 값을 저장하는 것과 같은 간단한 작업을 수행하는 경우에도 실제로는 느립니다. h:panelGroups
과 ui:includes
을 제외한 모든 사이트를 제거하면 사이트가 실제로 빠릅니다 (1-2 초 응답). 지금까지 나는 ui:includes
에있는 모든 페이지와 그들이 사용하는 빈을 인스턴스화하는 것을 알 수 있습니다.
속도를 높이려면 어떻게해야합니까? 우리는 resin 4.0.32와 primefaces 3.5에 mojarra 2.1.13을 사용하고 있습니다.
감사합니다.
''대신 [맞춤 facelet 태그] (http://www.mkyong.com/jsf2/custom-tags-in-jsf-2-0/)를 사용하는 것이 좋습니다. JSF 로직이 포함 된 전체 페이지를 포함 시키면 페이지가 빌드 될 때 포함되며 렌더링 될 때 포함되지 않기 때문에 문제가 발생할 수 있습니다. [@ ViewScoped 빈으로 경험 한 문제를 보라] (http://stackoverflow.com/questions/14518133/primefaces-multiple-dynamic-content-panels-to-be-displayed). –
나는 동적 인'ui : include' 대신'h : panelGroup'과'rendered'를 사용하는 이유와 동일한 문제가있었습니다. 커스텀 Facelet 태그를 살펴 봐야 할 것입니다. – casolorz