JSF で javax.faces.ViewState を削減する方法
-
02-07-2019 - |
質問
JSF のビューステートの隠しフィールドのサイズを減らす最善の方法は何ですか?私のビューステートは約 40k であることに気付きました。これは、特にサーバーに送信されるリクエストと応答ごとにクライアントに送信され、サーバーに返されます。これはユーザーにとって大幅な速度の低下です。
私の環境 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> `
1 つのオプションは、クライアント側でビューステートを完全に保存することですが、オブジェクトをシリアル化できないなどの問題に直面する可能性があります。要件に応じて別の圧縮アルゴリズム/ユーティリティを使用してみることもできますが、ブラウザはデフォルトですでに GZip を使用しているため、どの程度圧縮できるかはわかりません。
所属していません StackOverflow