私のウェブサイトのページは、2 種類のコンテンツで構成されています。1 つ目は、ユーザー間で変動しますが、すべてのページで一定です。2 つ目は、ユーザー間で一定ですが、ページ間で変動します。これは一般的なレイアウトです。このようなコンテンツに出力キャッシュを適用する最良の方法は何ですか?
私が理解しているように、Html.Substitute ヘルパーは MVC2 レンダリング パイプラインと互換性がなく、ドーナツ キャッシュの古い方法を排除しています。
すべてのページに VaryByParam="user" で通常の出力キャッシュを使用しますか?
特異性のレベルによって、出力キャッシュの価値が低下します。キャッシュされた出力の有効期間内に、同じユーザーが同じページを何度も表示することはほとんどありません。
別の OutputCache サブシステムを使用する
OutputCache 属性とレンダリング サブシステムを変更して置換をサポートする試みがインターネット上にいくつか出回っています。私が見つけた最高のものはここにあります。
ただし、私が見つけたさまざまなスニペットは非公式の実装のようで、十分にサポートされていません。さらに、置換を MVC2 パイプラインに簡単に追加できるのであれば、それは完了していたのではないかと思う傾向があります。
個別にキャッシュされたいくつかの子アクションから最終ページを構成します
アクション メソッドは属性でフラグ付けされず、個別にキャッシュされたコンテンツを取得するOutputCache
いくつかの呼び出しを含むビューを返します。Html.RenderAction
を使用することのわずかに重い意味はRenderAction
別として、間接的なレイヤーとコードの匂いが追加されます。
MVC2 で個別にキャッシュされたコンテンツを作成した経験は何ですか? 何がうまくいき、何がうまくいかなかったのか?