私のJSF/RichFaces/Facelets ajaxリクエストのパフォーマンスに問題があります。コンポーネントツリー全体が各Ajaxリクエストで再構築されているため、私はそれを知ることができます。これは、ajaxSingle = true、a4j:regionのセクションを折り返し、再レンダリングのためのセクションを宣言したり、まったく宣言しない場合でも発生します。私たちのページは、多くの入れ子レベルを持つダイナミックなページです。ページには約800-900のフィールド(inputText、豊富なカレンダー、selectOneMenusなど)が含まれている場合があります。最初の読み込み時間は問題ですが、私はその問題を理解しています、その多くのフィールド。初期のビルド/レンダリング時間を取得したら、他のすべてのアクションをajaxに設計し、必要なものだけを再レンダリングします。私はAJAX呼び出しにこのようなメッセージが表示さFaceletsのデバッグログから:各AjaxリクエストでJSFビューを再構築する
2011-08-24 22:19:03,054 DEBUG [facelets.viewhandler] (http-0.0.0.0-8080-2) Took
24445ms to build view: /oconsole/appfile.xhtml
2011-08-24 22:19:09,377 DEBUG [facelets.viewhandler] (http-0.0.0.0-8080-2) Took
6323ms to render view: /oconsole/appfile.xhtml
私は、我々がやっている何かが全体のコンポーネントツリー、またはFaceletsを再構築は、いくつかのために必要な、この必要性を決定している原因となっているかどうかわからないんだけど理由(古いキャッシュ?)。ここに私たちのスタックがあります: JBoss 5.1 JSF 1.2 RichFaces。 - facelets.BUILD_BEFORE_RESTORE = falseを facelets.REFRESH_PERIOD =:私は、彼らが助けになるかどうかを確認するために、いくつかのコンテキストパラメータを追加しようとしているが、彼らは何もしなかった3.3.3.Final Faceletsの1.1.15 シーム2.1.2
1または5(5分以内)
私たちのビューが正しくキャッシュされているかどうかを確認するにはどうしますか?状態を保存する方法をデリケートしないので、サーバー側にデフォルト設定されていると思います。私たちのすべての要求は、シームの長い会話の中で起こります。ビューがセッションレベルでキャッシュされると思ったので、これが要因であるかどうかはわかりませんでしたか?どんな助けでも大歓迎です、ありがとうございます。よりデバッグ後
更新:(FaceletsViewHandlerのメンバ変数を持つ)
AjaxViewHandlerはdevelopmentMode =真のセットを有しています。フェイスレットがビューをキャッシュしないようにしている場合、開発サイクル中に変更がリフレッシュされるかどうかはわかりません。 Facelets/JSFのビューとその動作のキャッシングに関する情報を見つけることは非常に困難でした。さらに、コンフィグパラメータを追加すると:
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>false</param-value>
</context-param>
これはかかりませんでした。デバッガでは、私はまだ真のセットを見ています。私たちにはサブビューがたくさんあるので、私も com.sun.faces.numberOfLogicalViewsと com.sun.faces.numberOfViewsInSession から15(デフォルト)の1000にアップしました。これは効果がありませんでした。
私はまた、クライアント側の状態の保存に幸運なしに変更しようとしました。アイデアの不足....
....誰かが助けることができることを望むシーム2.1 RichFacesのを自動的に初期化しそうですし、それはそれとは何か.....
これは古い質問ですが、多くの分野でこれを検討することがあります:http://industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per -request-memory-overhead/ –