gpt4 book ai didi

JSF 2 - ResponseWriter.flush() 的意义

转载 作者:行者123 更新时间:2023-12-04 06:09:21 27 4
gpt4 key购买 nike

我正在做一些测试,我意识到编写器不会自动刷新,即在所有组件都已呈现之前,我在客户端看不到任何响应?

我还尝试手动刷新响应编写器,但没有任何区别。有没有办法允许手动刷新,以便客户端更早地获得响应?

谢谢

最佳答案

也许您使用了错误的编写器或在错误的时间调用了 flush 或误解了结果(即行为是特定于浏览器/CSS/JS 的)。以下测试用例适用于 Mojarra 2.1.3。

<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />
<h:outputText value="#{bean.text}" escape="false" />


public String getText() throws Exception {
FacesContext.getCurrentInstance().getExternalContext().responseFlushBuffer();
Thread.sleep(250);
return "<br />a line of text";
}

您会在浏览器中看到它们清楚地一行一行地出现,而不是一次全部出现。

请注意,并不真正推荐上述方法。您可以使用上下文参数 javax.faces.FACELETS_BUFFER_SIZE 微调响应缓冲区大小.
<context-param>
<!-- Flush every 128 bytes (default is 1024) -->
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>128</param-value>
</context-param>

关于JSF 2 - ResponseWriter.flush() 的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951428/

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