JSF页面在项目开发阶段加载时闪烁

JSF页面在项目开发阶段加载时闪烁,jsf,Jsf,我有一个JSF页面,有9个InputText框和2个InputSecret框。每个框都有一个连接到属性文件的标签、一个验证器(带有消息),并包含一个连接到命名会话范围bean的EL表达式。我使用Glassfish 3.1.2.1作为应用服务器。如果我将project_stage设置为Development,那么当加载或刷新此页面时,我会看到一个明显的闪光。这种情况发生得很快,但在加载页面之前,背景(主体)似乎被清除为白色。如果我将项目阶段设置为生产阶段,我看不到flash。项目阶段开发是什么导致

我有一个JSF页面,有9个InputText框和2个InputSecret框。每个框都有一个连接到属性文件的标签、一个验证器(带有消息),并包含一个连接到命名会话范围bean的EL表达式。我使用Glassfish 3.1.2.1作为应用服务器。如果我将project_stage设置为Development,那么当加载或刷新此页面时,我会看到一个明显的闪光。这种情况发生得很快,但在加载页面之前,背景(主体)似乎被清除为白色。如果我将项目阶段设置为生产阶段,我看不到flash。项目阶段开发是什么导致了这种行为

当从HTTP响应接收的第一个字节和最后一个字节之间需要一段时间时,这是特定于浏览器的行为。一些浏览器在接收到第一个字节时会清空,在接收到最后一个字节时会完整显示新页面。人眼的帧速率约为25fps(与电视一样)。任何比这更快的东西都不会被人类注意到。但是任何比这慢的东西都会导致空白可见

开发阶段会导致某些部件不缓存,以便在源文件中所做的最新更改立即可见,例如Facelets源文件。它们都是根据每个请求重新编译和解析的。所有这些都会导致页面加载时间稍长,因此当浏览器空白显示时间超过1/25秒时,很快就会显示出来

您可能想考虑在>Web.XML/COD>中增加FACELET缓冲区大小,以达到最大HTML输出的大小,以便响应一次发送,而不是部分需要更多的预处理时间。 例如64KB:

<context-param>
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
    <param-value>65535</param-value> <!-- 64KB -->
</context-param>

javax.faces.FACELETS\u缓冲区\u大小
65535

谢谢您的回答。我按照建议将缓存大小增加到64KB,这消除了我在project_阶段开发时看到的页面加载闪存。