如何在JSF中减少javax.faces.ViewState
时间:2020-03-06 14:36:15 来源:igfitidea点击:
在JSF中减小viewstate隐藏字段大小的最佳方法是什么?
我已经注意到,我的视图状态大约为40k,这会下降到客户端,并在每次请求和响应(特别是到达服务器)时都返回到服务器,这对于用户来说是一个严重的问题。
我的环境JSF 1.2,MyFaces,Tomcat,战斧,RichFaces
解决方案
如果我们使用的是MyFaces,则可以尝试使用此设置来压缩视图状态,然后再发送给客户端。
<context-param> <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name> <param-value>true</param-value> </context-param> `
一种选择是在客户端完全保存视图状态,但是我们可能会遇到诸如无法序列化对象的问题。我们可能希望根据自己的需求尝试使用其他压缩算法/实用工具,但是由于默认情况下浏览器将已经使用GZip,因此我不确定我们可以获得多少。
我们是否尝试过将状态保存设置为服务器?这应该仅将ID发送给客户端,并在服务器上保持完整状态。只需将以下内容添加到文件web.xml中:
<context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param>