4

我将 Mojara 2.0.3 与 PrimeFaces 2.2 一起使用。

我已经阅读了这个主题的很多帖子,并找到了一些不错的建议(例如不要在 getter 中使用 db 调用等)并使用它们,但我们的应用程序仍然需要大约 3 秒来呈现响应。

我对其进行了测试,第 6 个生命周期(渲染阶段)是最大的资源消耗者。我们主要使用内置或复合组件,我想知道用简单的html标签替换其中一些(主要用于设计而不使用任何功能)是好还是坏。

例如:Insted of <p:outputPanel styleClass="myClass">...some code...</p:outputPanel>

使用这个

<div class="myClass">...some code...</div>

我们有数百个组件和数千个 DOM 元素的巨大视图,我可以成为渲染阶段的阻碍者。

编辑:

在我删除了几乎所有“无用”的组件之后,我们经历了巨大的性能增长。无论是响应时间还是响应大小。平均响应时间从~3 秒减少到~2.2 秒。太棒了……所以结论是:少用,多用 :)

4

1 回答 1

2

根据Core Java Server Faces的第 1 章,纯 HTML(静态)在 JSF 标签的编码阶段之前经过。

如果您有一些不需要与 Backing Bean 通信的 JSF 标记,我怀疑通过将静态数据限制在普通 HTML 中,您会享受到小的性能提升。

JSF 生命周期的编码和解码短语在组件标记和普通 HTML 之间进行转换。与html相比,如果您使用的 Component 可以避免循环遍历表并填充行(例如),而不是像<h:outputText>不使用 ajax 或绑定到支持 bean 的东西,那么这对您来说才值得<p>元素。

简而言之,如果您不需要利用 JSF 作为控制器,请不要害怕在 JSF 文档中使用普通的旧 HTML。

于 2012-07-24T16:00:22.360 回答