ASP.Net中可以方便的使用緩存,對於Cache,一般有兩種方式調用:HttpContext.Cache和HttpRuntime.Cache。那麼這兩種Cache有什麼區別呢?
先來看看Msdn上的注釋:
HttpRuntime.Cache:獲取當前應用程序的 Cache。
HttpContext.Cache:為當前 HTTP 請求獲取 Cache 對象。
那麼是不是說對於HttpRuntime.Cache就是應用程序級,而HttpContext.Cache則是針對每個用戶的呢?NO,而實際上,兩者調用的是同一個對象。他們的區別僅僅在於調用方式不一樣(就我所知)。
事實勝過雄辯,寫個例子來證實一下(限於篇幅僅貼出關鍵代碼,完整代碼見附件WebDemo.rar):
/**//// <summary>
/// 通過HttpRuntime.Cache的方式來保存Cache
/// </summary>
private void btnHttpRuntimeCacheSave_Click(object sender, System.EventArgs e)
{
HttpRuntime.Cache.Insert(cacheKey, cacheValue, null, DateTime.Now.AddMinutes(3), TimeSpan.Zero);
}
/**//// <summary>
/// 通過HttpRuntime.Cache的方式來讀取Cache
/// </summary>
private void btnHttpRuntimeCacheLoad_Click(object sender, System.EventArgs e)
{
if (HttpRuntime.Cache[cacheKey] == null)
{
cacheContent = "No Cache";
}
else
{
cacheContent = (string)HttpRuntime.Cache[cacheKey];
}
lblCacheContent.Text = cacheContent;
}