Domanda

Qual è il modo migliore per ridurre le dimensioni del campo nascosto viewstate in JSF? Ho notato che il mio stato di visualizzazione è di circa 40k, questo scende al client e torna al server su ogni richiesta e risposta che arrivano in particolare al server, questo è un significativo rallentamento per l'utente.

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

È stato utile?

Soluzione

Hai provato a impostare il salvataggio dello stato sul server? Questo dovrebbe solo inviare un ID al client e mantenere lo stato completo sul server. Aggiungi semplicemente quanto segue al file web.xml :

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

Altri suggerimenti

Se stai usando MyFaces puoi provare questa impostazione per comprimere il viewstate prima di inviarlo al client.

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

Un'opzione è quella di salvare completamente lo stato di visualizzazione sul lato client, ma è possibile che si verifichino alcuni problemi, ad esempio non riuscire a serializzare l'oggetto. Potresti provare a utilizzare algoritmi / utilità di compressione diversi in base alle tue esigenze, ma poiché il browser utilizzerà già GZip per impostazione predefinita, non sono sicuro di quanto puoi guadagnare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top