ASP.NET MVCでのキャッシング

ASP.NET MVCアプリケーションで利用可能なキャッシュ・オプションは、ASP.NET MVCフレームワークから来るが、コアASP.NETフレームワークからはありません。

 

1.リクエストスコープのキャッシング

すべてのASP.NET要求は、ASP.NETフレームワークは、新しいインスタンスの作成から始まる
との相互作用の中心点として機能するSystem.Web.HttpContextオブジェクトの
要求全体のコンポーネントを。

HttpContextの多くの特性の一つであるHttpContext.Items プロパティ、
任意のコンポーネントは、要求とその寿命を通して住ん辞書
操作することができます。

例えば:

 

// コレクション内のデータを格納する方法: 
        HttpContext.Items [ IsFirstTimeUser  ] = ; 

        // 辞書からデータを取得することも簡単である:
        BOOL IsFirstTimeUser =(BOOL)HttpContext.Items [ " IsFirstTimeUser " ]。


2.ユーザースコープのキャッシング

ASP.NETのセッション状態を使用すると、複数のリクエスト間で持続するデータを格納することができます。

// セッションでユーザー名を格納 
[HttpContext.Session ユーザ名 = Hrusi 

// 取得し、型指定されていない値キャスト:
文字列名=(文字列)HttpContext.Session [ ユーザー名 ];

<のsystem.web>
  <てsessionStateタイムアウト= "30" />
</system.web>

 

3. ASP.NETのキャッシュ

System.Web.Cacheは、キー/値ストアです

 

4.出力キャッシュ

ASP.NETは、要求の結果として生成されるHTMLをキャッシュする、より高いレベルで動作する能力を提供します。

[OutputCache(時間= 60、VaryByParam = " なし" )]
 公共のActionResult接触()
{ 
    ViewBag.Message = DateTime.Now.ToString()。
    返すビューを(); 
}

 キャッシュの場所を設定します

たとえば、あなたは現在のユーザーの名前を表示するページをキャッシュしたいと言います。あなたがいる場合
、デフォルトどれでも設定を使用し、ページを要求する最初の人の名前が間違ってます
すべてのユーザーに表示されます。


これを避けるために、出力に設定されLocationプロパティで出力キャッシュを構成する
データのみが利用者の中に保存されているようにCacheLocation.ClientとNOSTORE trueに設定
ローカルWebブラウザ:

[OutputCache(期間= 3600、VaryByParam = " なし"、LOCATION = OutputCacheLocation.Client、NOSTORE = )]
 パブリック(についてのActionResult)
{ 
    ViewBag.Message = " 現在のユーザ名が" + User.Identity.Name。
    返すビューを(); 
}

 

 リクエストパラメータに基づいて、出力キャッシュを変えます

たとえば、あなたが詳細表示詳細という名前のコントローラのアクション持っていると言う
オークションを:

[OutputCache(時間= INT .MaxValue、VaryByParam = " ID " )]
 公共のActionResult詳細(文字列ID)
{ 
    VARのオークション= _repository.Find <オークション> (ID)。
    返すビュー(詳細、オークションを)。
}

 

 

ます。https://www.cnblogs.com/davidgu/p/3331699.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33937913/article/details/93802893
おすすめ