SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET MVC 3 リリース候補版のお知らせ

ScottGu's Blog翻訳

パーシャル・ページの出力キャッシュ

 ASP.NET MVCは、ページ全体のレスポンスの出力キャッシュを、V1からサポートしてきました。ASP.NET MVC V3(本日のRCから開始)では、パーシャル・ページの出力キャッシュのサポートも可能になりました。これにより、簡単にレスポンスの断片(すべてではなく)を出力キャッシュできます。

 ページの断片を出力キャッシュするのは、非常に簡単です。描画しているビュー内から起動する子アクションの中に、出力キャッシュしたい領域をカプセル化するだけです。例えば、以下に製品一覧ページがありますが、『本日のスペシャル』セクションも同じページに出力するとします。

 上記では、Html.Actionヘルパーメソッドを使って、SalesController.DailySpecials子アクションメソッドを呼び出しています。上記ではカテゴリパラメータを引き渡しており、それにより、ユーザーが現在見ている製品のタイプに基づいて、『本日のスペシャル』の表示をカスタマイズできます(これにより、もしユーザーが『コンピュータ』製品を見ている場合は、コンピュータのスペシャル一覧を表示し、もし『赤ちゃん』製品を見ている場合は、おむつのスペシャル一覧を表示します)。

 以下は、SalesController.DailySpecialsメソッドの簡単な実装です。適切な製品一覧を取得し、Razorのパーシャル・ビューテンプレートを使用して、レスポンスを返し描画します。

 上記のDailySpecialsメソッドが、どのような[OutputCache]属性を持っているか確認してください。これは、描画されるその部分コンテンツが、キャッシュされることを示しています(3600秒間/1時間)。そのキャッシュされたコンテンツが、自動的にカテゴリパラメーターに基づいて、変化することも示しています。

 もし製品のカテゴリが10種類あった場合、DailySpecialsメソッドは、10個の異なるスペシャル一覧をキャッシュすることになるので、適切なコンテンツ(コンピュータやおむつ)が、ユーザーが見ている製品カテゴリに応じて出力されます。

重要:

 部分コンテンツがキャッシュから出力された場合、データベースアクセスやロジック処理が起こらないので、サーバーへの負荷の軽減や、応答時間のスピードアップにつながります。

 この新しいメカニズムにより、アプリケーションへパーシャルページの出力キャッシュを、非常にクリーンで簡単な方法で追加できます。

次のページ
Unobtrusive(目立たない)JavaScriptと検証

この記事は参考になりましたか?

Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5576 2010/11/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー