キャッシュASP.NETページ

2161 ワード

ASP.NETでは、ブラウザ、プロキシサーバ、アプリケーションが存在するWebサーバなど、HTTP 1.1機能を備えたメカニズムで動的ページの応答内容全体をキャッシュできます.これにより、Webアプリケーションのパフォーマンスを向上させる強力な方法が提供されます.このテクノロジーを出力キャッシュと呼びます.これにより、キャッシュから特定のページに対する要求を満たすことができ、その後の要求が発生したときに最初にページを作成したコードを実行する必要がなくなります.このテクノロジーを使用して、サイト内で最も頻繁にアクセスされるページをキャッシュすることで、Webサーバのスループットを十分に向上させることができます(通常、1秒当たりのリクエスト数で計算されます).
ページの出力キャッシュを操作する場合は、宣言APIまたは低レベルのプログラミングAPIを選択できます.@OutputCacheコマンドをこのページに含めることができます.aspxファイルでは前者を使用します.@OutputCache命令は、ページ出力をキャッシュする際のほとんどの一般的な要件を満たすことができる.次のコマンドは、.aspxファイルに含まれる場合、動的生成ページのキャッシュ出力に60秒の有効期限を設定します.
<%@ OutputCache Duration="60" VaryByParam="None" %>

警告使用時
@OutputCache指令の場合、
Duration和
VaryByParamプロパティは必須です.これらを含まない場合は、最初のリクエストページでアナライザエラーが発生します.使用したくない場合は
VaryByParamプロパティが提供する機能は、その値を
None.使用について
VaryByParamプロパティの詳細については、「
ページの複数のバージョンをキャッシュします.
ASP.NETはまた、HttpCachePolicyクラスを介してページの出力キャッシュの有効期限およびポリシーをプログラミング的に制御するAPIのセットを含む.HttpResponseを通過する.Cacheプロパティは、クラス、メソッド、およびそのプロパティを使用できます.Pageも使えますResponseプロパティは、Pageオブジェクトからアクセスします.
例えば、次のコード(ページのコード宣言ブロックまたはそのコード非表示クラスに含む場合)は、HttpCachePolicyを使用する.SetExpiresメソッドは、動的に生成されたページに60秒の有効期限を設定します.
[C#]

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

[Visual Basic]

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))

出力キャッシュを有効にすると、ページの最初のHTTP GETリクエストは、指定した時間内にダイナミックコンテンツを出力キャッシュに配置します.出力キャッシュは、指定した時間量を超えるまで、後でページに対するGET、HEAD、またはPOST要求を満たします.
また、キャッシュをサポートするデバイスのページ出力キャッシュをリクエストフローで有効または無効にするには、宣言またはプログラミングを使用します.ページの@OutputCacheコマンドでは、Locationプロパティを使用して、プロキシサーバー、ブラウザクライアント、元のWebサーバー、またはすべてのデバイスにページ出力をキャッシュするか、またはこれらのデバイスのいずれかにキャッシュしないかを指定できます.HttpCachePolicyを使用すると、プログラミングで同様の操作を行うことができる.SetCacheabilityメソッドは、ページに適切なHttpCacheability列挙値を指定します.詳細については、ページのキャッシュ性の設定を参照してください.
クエリ文字列パラメータを持つGETリクエストまたはパラメータを持つフォームPOSTリクエストによって生成されたレスポンスをキャッシュすることもできますが、@OutputCacheコマンドのVaryByParamプロパティを使用して、パラメータを渡すキャッシュを明示的に有効にする必要があります.詳細については、キャッシュ・ページの複数のバージョンを参照してください.
出力キャッシュをプログラム的に行うには、任意の操作が必要であることを覚えておいてください.aspxファイルのコード宣言ブロックで行うか、これと.aspxファイルに関連付けられたコード非表示クラスで行います.