4

PrimeFaces 2.2 で Mojara 2.0.3 を使用しています。

私はすでにこのトピックの多くの投稿を読み、かなりの提案 (getter で db 呼び出しを使用しないなど) を見つけて使用しましたが、アプリが応答をレンダリングするのにまだ 3 秒ほど必要です。

テストしたところ、6 番目のライフサイクル (レンダリング フェーズ) が最大のリソース消費者です。私たちは主に組み込みまたは複合コンポーネントを使用していますが、それらの一部 (主に機能を使用せずに設計に使用) を単純な html タグに置き換えるのが良いか悪いか疑問に思います。

例: <p:outputPanel styleClass="myClass">...some code...</p:outputPanel>

これを使って

<div class="myClass">...some code...</div>

数百のコンポーネントと数千の DOM 要素を含む巨大なビューがあり、レンダリング フェーズでブロッカーになる可能性があります。

編集:

ほとんどすべての「役に立たない」コンポーネントを削除した後、パフォーマンスが大幅に向上しました。応答時間と応答サイズの両方で。平均応答時間が ~3 秒から ~2.2 秒に短縮されました。すごい...だから結論は:使用を減らして、より多くを手に入れましょう:)

4

1 に答える 1

2

Core Java Server Facesの第1章によると、純粋なHTML(静的)はJSFタグのエンコードフェーズの前に通過します。

バッキングBeanと通信する必要のないJSFタグがある場合は、静的データをバニラHTMLに限定しておくことで、パフォーマンスが少し向上すると思います。

JSFライフサイクルのエンコードおよびデコードフレーズは、コンポーネントマークアップとバニラHTMLの間で変換されます。これは、 HTML<h:outputText>と比較して、テーブルをループして行を入力する必要がないコンポーネントを使用している場合と、ajaxを使用していない、またはバッキングBeanにバインドされていないコンポーネントを使用している場合にのみ価値があります。<p>エレメント。

つまり、コントローラーとして機能するJSFを利用する必要がない場合でも、JSFドキュメントでプレーンな古いHTMLを使用することを恐れないでください。

于 2012-07-24T16:00:22.360 に答える