PrimeFaces渲染属性对性能的影响

时间:2017-03-21 11:41:07

标签: jsf primefaces


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

现在我的问题是,将组件的呈现属性设置为false,等同于那个根本不存在的组件(对性能没有任何影响)?

2 个答案:

答案 0 :(得分:1)

要像模板一样使用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,你也可以向你发送包含元素的参数。

您可以在more informations about include中阅读更多内容。

希望能帮到你。

答案 1 :(得分:1)

  

现在我的问题是,将组件的呈现属性设置为false,等同于那个根本不存在的组件(对性能没有任何影响)?

这不等同。如果设置了render = false,则组件仍在服务器端的组件树中。因此,它会花费一点点性能和内存。

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