4

ランディング ページに使用するさまざまな Django 1.3 キャッシング アプローチを試しています。このページには、いくつかのデータベース クエリとユーザー認証の結果が含まれています。@cache_page デコレーターを使用してビュー関数の応答全体をキャッシュするのが、最も優れたソリューションです。問題は、ユーザー認証もキャッシュされることです。

各ユーザーのキャッシュにキーを作成できますが、これは無駄に思えます。同じランディング ページを何度もキャッシュし、唯一の違いはユーザーの認証です。また、認証以外のすべてにテンプレート フラグメント キャッシング低レベル キャッシングを使用しましたが、パフォーマンスは @cache_page デコレータ アプローチほど良くはありませんでした。

多くの冗長なユーザーベースのキャッシュなしで @cache_page のパフォーマンスを得る方法はありますか?

4

1 に答える 1

2

このブログ投稿をチェックしてください: http://www.holovaty.com/writing/django-two-phased-rendering/

基本的には、ユーザー固有のセグメントをテンプレート タグでラップして、テンプレート エンジンがそれらをレンダリングしないようにし、キャッシュしてから、キャッシュされた出力を再レンダリングしてユーザーの詳細を入力します。

Django 1.5 には、投稿verbatimのカスタム タグの代わりに使用できるというタグが含まれています。ただし、カスタムまたは同等のものがraw必要です。CachedTemplateMiddleware

于 2012-12-05T21:43:42.030 に答える