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

My Environment JSF 1.2,MyFaces,Tomcat,Tomahawk,RichFaces

有帮助吗?

解决方案

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

 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>

其他提示

如果您使用的是MyFaces,可以尝试使用此设置压缩视图状态,然后再发送给客户端。

<context-param>
    <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name>
    <param-value>true</param-value>
</context-param> `

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top