2011-07-31 9 views
1

私はPlayフレームワークを使用して車両ポータルを開発しており、ほとんどの検索表示ページ機能が実装されています。私はキャッシングを念頭に置いてホームページをデザインすることについてはちょっと混乱しています。ホーム/インデックスページの静的コンテンツを格納する場所

ホームページには、静的コンテンツと動的コンテンツが混在しています。しかし、動的な内容(レポート、市場動向、他のユーザーの投稿したブログ、adv写真など)自体は、毎日更新/追加されない可能性があります。

  1. 静的なhome.htmlページにすべてのコンテンツを置き、コンテンツが更新されたときにページを変更するには、次の2つのオプションが考えられます。
  2. home.htmlをDatabaseに格納されたコンテンツから動的にレンダリングさせるには。

私の質問は以下のとおりです。

  1. どちらがより優雅なのですか?通常はもっと標準的な練習ですか?他に誰かが提案できる方法はありますか?
  2. これらのコンテンツをPlayフレームワークとともに管理するCMSシステムを統合する方法はありますか?またはPlayで1つの基本的なCMSを開発する必要があります。積分する。
  3. ホームページを管理するためにCMSを使用するのは標準的な方法ですか?

答えて

3

ここで私の好みでは、Playのキャッシュ機能を使用してパフォーマンスを向上させるダイナミックホームページを構築します。

CMSが統合されている場合(これは既にPlayで行われている例がありますが)、あなたのニーズには余計に聞こえるかもしれません。あなたのページのダイナミックな部分があまりにも大きく聞こえないので、単純なデータベースでそれを維持するのは非常に簡単なはずです。

ホームページをキャッシュするには、コントローラアクションに対して@CacheForアノテーションを使用できます。

@CacheFor("1h") public static void home() { 

// ... your home page controller code here 

} 

これは、発生するすべてのDBコードなどが1時間に1回しか実行されず、出力がキャッシュされることを意味します。

+0

ありがとうございます!また、コンテンツが更新されるたびにキャッシュをクリアできるように、更新/追加コントローラにフック/ CacheIdを持つことに興味があります。 @CacheForはそのようなIDを公開していますか?または任意の選択肢? –

+0

私はこれを理解しました。はい@CacheForはIdフィールドを公開しています。サンプルを試してみました。これは、Playが、私たちが期待していたほとんどすべての方法を、最も直感的な方法で提供していることを示す別の例です。 –

関連する問題