gpt4 book ai didi

在 project_stage 开发期间加载期间 JSF 页面闪烁

转载 作者:行者123 更新时间:2023-12-04 05:07:34 25 4
gpt4 key购买 nike

我有一个带有 9 个 InputText 框和 2 个 InputSecret 框的 JSF 页面。每个框都有一个连接到属性文件的标签、一个验证器(带有消息),并包含一个连接到命名 session 作用域 bean 的 EL 表达式。我使用 Glassfish 3.1.2.1 作为应用程序服务器。如果我将 project_stage 设置为 Development,我会在加载或刷新此页面时看到明显的闪烁。它发生得非常快,但看起来好像在加载页面之前背景(主体)被清除为白色。如果我将项目阶段设置为生产,我看不到闪光灯。 Project_Stage 开发正在做什么导致这种行为?

最佳答案

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

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

您可能需要考虑增加 web.xml 中的 Facelets 缓冲区大小。大约为最大 HTML 输出的大小,以便一次性发送响应而不是部分发送,这可能需要更多的预处理时间。

例如64KB:

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

关于在 project_stage 开发期间加载期间 JSF 页面闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15331073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com