17

减少 JSF 中视图状态隐藏字段大小的最佳方法是什么?我注意到我的视图状态大约是 40k,这会在每个请求和响应(尤其是到达服务器)时下降到客户端并返回到服务器,这对用户来说是一个显着的减慢。

我的环境 JSF 1.2、MyFaces、Tomcat、Tomahawk、RichFaces

4

3 回答 3

16

您是否尝试将状态保存设置为服务器?这应该只向客户端发送一个 id,并在服务器上保持完整状态。只需将以下内容添加到文件web.xml中:

 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
于 2008-10-04T19:14:29.277 回答
15

如果您使用的是 MyFaces,您可以尝试此设置以在发送到客户端之前压缩视图状态。

<context-param>
    <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name>
    <param-value>true</param-value>
</context-param> `
于 2008-09-23T15:11:21.527 回答
0

一种选择是在客户端完全保存视图状态,但您可能会遇到一些问题,例如无法序列化对象。您可能想根据您的要求尝试使用不同的压缩算法/实用程序,但由于浏览器默认已经使用 GZip,我不确定您可以获得多少。

于 2008-09-23T23:51:08.797 回答