繁体   English   中英

PrimeFaces渲染属性对性能的影响

[英]PrimeFaces rendered attribute impact on performance


我正在开发带有PrimeFaces的JSF应用程序,其中计划主要使用tabViews(多个)。 为了让您大致了解应用程序的工作方式,我有一个侧面菜单,用户可以从中选择“模块”,这些模块将在中心布局中显示为“选项卡”。 鉴于我有多个“模块”,并且将来还会有更多模块,因此我决定使用的解决方案是为xhtml中具有的所有选项卡编写代码,然后使用rendered属性(默认设置为false )以显示它们(当用户单击相应菜单时)。

现在,我的问题是,是否将组件的rendered属性设置为false,等同于该组件根本不存在(对性能完全没有影响)?

要将xhtml页面用作模板,请按照以下步骤操作

第1步:创建我的包含页面

<ui:composition  xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:h="http://java.sun.com/jsf/html"
                 xmlns:p="http://primefaces.org/ui"
                 xmlns:f="http://java.sun.com/jsf/core"
                 >

<h:form id="form">
  ... 
</h:form>
</ui:composition>

假设此页面的名称是myTemplate.xhtml

第2步:每次需要时都使用模板页面

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/templates/templateCrb.xhtml"
                xmlns:p="http://primefaces.org/ui"
                > 

    <ui:define name="MyContent">
        <ui:include src="/pages/.../myTemplate.xhtml">
        </ui:include>
    </ui:define>
</ui:composition>    

在这种情况下,我包括一个完整的页面,但是您可以在对话框中使用它,即tabView,也可以将参数发送给您的include元素。

您可以阅读更多有关include的信息

希望对您有所帮助。

现在,我的问题是,是否将组件的rendered属性设置为false,等同于该组件根本不存在(对性能完全没有影响)?

这不是等效的。 如果您设置了rendered = false,则组件仍在服务器端的组件树中。 因此,它需要一点性能和内存。

过去,当组件树更大时,Mojarra还会遇到很大的性能问题: https ://blog.oio.de/2013/05/16/jsf-performance-mojarra-improves-dramatically-with-latest-release/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM