Pergunta

O que é a melhor maneira de reduzir o tamanho do campo oculto viewstate em JSF? Tenho notado que o meu estado de exibição é aproximadamente 40K esta desce para o cliente e de volta para o servidor em cada solicitação e resposta espically vindo para o servidor esta é uma desaceleração significativa para o usuário.

O meu ambiente JSF 1.2, MyFaces, Tomcat, Tomahawk, RichFaces

Foi útil?

Solução

Você já tentou definir a poupança de servidor de estado? Isso só deve enviar um id para o cliente, e manter o estado completo no servidor. Basta adicionar o seguinte para o arquivo web.xml :

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

Outras dicas

Se você estiver usando MyFaces você pode tentar essa configuração para comprimir o viewstate antes de enviar para o cliente.

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

Uma opção é completamente salvar o estado de exibição no lado do cliente, mas você pode enfrentar algum problema, como não ser capaz de serializar o objeto. Você pode querer tentar usar diferentes algoritmo de compressão / utilitário baseado em sua exigência, mas desde que o navegador já vai usar o GZip por padrão não estou certo de quanto você pode ganhar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top