Question

Quel est le meilleur moyen de réduire la taille du champ caché viewstate dans JSF? J'ai remarqué que mon point de vue est d'environ 40 000. Cela revient au client et revient au serveur à chaque demande et réponse, en particulier pour le serveur, ce qui représente un ralentissement important pour l'utilisateur.

Mon environnement JSF 1.2, MyFaces, Tomcat, Tomahawk, RichFaces

Était-ce utile?

La solution

Avez-vous essayé de définir la sauvegarde d’état sur le serveur? Cela devrait uniquement envoyer un identifiant au client et conserver l'état complet sur le serveur. Ajoutez simplement ce qui suit au fichier web.xml :

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

Autres conseils

Si vous utilisez MyFaces, vous pouvez essayer ce paramètre pour compresser l'état de la vue avant de l'envoyer au client.

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

Une option consiste à enregistrer complètement l'état d'affichage côté client, mais vous pouvez être confronté à des problèmes tels que l'impossibilité de sérialiser l'objet. Vous voudrez peut-être essayer d’utiliser un algorithme / utilitaire de compression différent en fonction de vos besoins, mais comme le navigateur utilisera déjà le GZip par défaut, je ne sais pas combien vous pouvez gagner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top