2017-01-26 5 views
0

私は、サイト主題に関する要約を含む多くのJSFページで作業しています。大きなページでは、サマリーは別の場所で繰り返されます。それは、それを挿入し、要素を定義することによって行われます、いくつかの異なる場所で要素を再生成せずに正確なコピーを挿入する方法

<ui:define name="sommaire"> 
<ui:include src="/sommaire/sommaire.xhtml"> 
    <ui:param name="contrat" value="#{form.contrat}" /> 
</ui:include> 
</ui:define> 

以降:

<ui:insert name="sommaireContrat" /> 

問題は次のとおりです。概要は独自のバッキングBeanおよびロジック、および毎回ありましたそれが含まれると、ロジックが再実行され、htmlの新しいブロックがレンダリングされます。私は、生成されたコンポーネントのコピーをBeanにもう一度関与せずに使用するタグがあるかどうか疑問に思っていました。 私は、含まれているコンテンツを変更しない提案はありません。

+0

なぜあなたはこれを望みますか?現在どのように問題がありますか? – Kukeltje

+0

@Kukeltjeすべての挿入に対して、要約のバッキングBeanは、表示された情報(平均費用など)を再計算します。それはあまり処理時間ではありませんが、それは目立ち、不要です。 –

+0

それでは、計算値を 'キャッシュ'しないのはなぜですか?または、[omnifaces cache](http://showcase.omnifaces.org/components/cache)を試してください。 – Kukeltje

答えて

1

Omnifaces cacheは、PrimeFacesを使用していない場合に最も適しています。

Omnifacesショーケースから:

<o:cache>コンポーネントは、レンダリングされたマークアップの断片をキャッシュすることを可能にします。 このコンポーネントを持つページの最初の要求により、 このマークアップがキャッシュに格納されます。その後、後続の要求のために キャッシュされたコンテンツを直接使用されていて、PrimeFaces、PrimeFaces cacheを使用している場合、コンポーネントのいずれもが、 最初の場所でこのコンテンツを生成するために使用された 豆やサービスをバックアップ

に相談しないであろうあなたのためのオプションです。 PrimeFacesサイトから

キャッシュCacheコンポーネントは、初期レンダリングの後にグローバルキャッシュに コンテンツをキャッシュすることにより、ページの読み込み時間を短縮するために使用されます。さまざまなキャッシュ プロバイダーは、ehcacheおよびhazelcastのようにサポートされています。この例では、 ツールバーコンポーネントがキャッシュされ、出力がキャッシュから取得されます。

いくつかの違いがあります。あなたの完全なドキュメントを読んで、どれが最も適しているかを確認してください。

+0

JSFにはまったくの種類のキャッシュは含まれていませんが、本当に短いキャッシュ履歴を持つPrimeFaceは驚きです私が働いているものに最も適しています。ありがとうございました。 –

+0

ええええええええええええええええええええええええええええ、...だから私はあなたが本当に何を意味するのか理解できません.. – Kukeltje

関連する問題