Asp.net は 3 種類のキャッシュをサポートしています。
技術的な概要を簡単に書きたいと思いますが、多すぎるかもしれません。技術概要の目的は、技術的なポイントを最も迅速かつ簡単な方法で説明することであり、これが知識を広める最も効率的な方法でもあると私は望んでいます。
1. ページ/コントロール キャッシュ
2. アプリケーションレベルキャッシュ
3. ブラウザクライアントキャッシュ
実装の観点から、ページ/コントロール キャッシュとアプリケーション レベルのキャッシュはサーバーのメモリに格納されます。メモリが不足するため、これらのコンテンツは無効になる前に事前に削除される場合があります。 (キャッシュの特性により、これらのコンテンツは確実に削除できることが判断されます)。ブラウザクライアントのキャッシュは、例えばIEの一時フォルダがキャッシュとして機能します。ユーザーがページをリクエストするたびに、ブラウザはまずキャッシュを検索して、要件を満たし、期限切れになっていないキャッシュ コンテンツがあるかどうかを確認し、存在する場合はキャッシュから直接読み取り、ネットワーク送信をスキップします。
次に、Asp.net での具体的な書き込み方法を示します。
1. ページ/コントロール キャッシュは、aspx、ascx ファイルで宣言することも、背後のコードで宣言することもできます。
<%@ OutputCache 期間="#of秒"
Location="任意 | クライアント | ダウンストリーム | サーバー | なし |
ServerAndClient "
Shared="True | False"
VaryByControl="コントロール名"
VaryByCustom="ブラウザ | カスタム文字列"
VaryByHeader="ヘッダー"
VaryByParam ="パラメータ名"
CacheProfile="キャッシュ プロファイル名 | ''"
NoStore="true | false"
SqlDependency="データベース/テーブル名のペア | CommandNotification"
%>
主なパラメータは次のとおりです:
期間: キャッシュの有効時間、単位は秒
共有: それはコントロールに対してのみ有効です。コントロールを複数のページに同時に適用できる場合、各ページがこのコントロール用に独自のキャッシュを保持せずに、複数のページでこのキャッシュを共有できますか?
VaryByControl: キャッシュはコントロールの ID で変更されます。
VaryByCustom: 変数はここで指定され、Global.ascx:
public override string GetVaryByCustomString (
HttpContext context,
string custom
)
this
で実装されます。ステートメント カスタム パラメータは、OutPutcache で宣言された変数です。異なるキャッシュの内容は、この関数の異なるカスタム パラメーターに対して異なる文字列値を返すことによって表されます。
VaryByHeader、VaryByParam、および CacheProfile も異なるキャッシュ バージョンを設定します。
NoStore は、キャッシュのコンテンツをメモリ以外のストレージ デバイスに書き込むことができないことを意味します。これは、比較的高いセキュリティを持つコンテンツの要件です。
SqlDependency はデータベースに関連しています。
2. アプリケーションレベルのキャッシュは
コードビハインドでのみ取得でき、必要なあらゆるキャッシュロジックを実装できるのが特徴です。
Page.Cache を通じて取得できます。クラス名は System.Web.Caching.Cache です。
3. ブラウザ クライアント キャッシュは
分離コードでのみ取得でき、HttpCachePolicy オブジェクトである Response.Cache を通じて指定できます。
さらに、毎回秒に変換せずに、キャッシュ時間として TimeSpan を指定できます。
public TimeSpan
(int 時間、int 分、int 秒);
public TimeSpan(int 日、int 時間
、int 分、int 秒);
, int ミリ秒);
キャッシュに 1 時間、1 分、1 秒を保持したい場合は、
最初に1 時間、1 分、1 秒 = 3600 を
計算する代わりに
、new TimeSpan(1,1,1) を
直接使用できます。+60+1=3661 秒で転送します。 有効期間として 3661 を入力します。
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html