一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 使用駐留在頁面中的Cache緩存常用可定時更新的數據

asp.net 使用駐留在頁面中的Cache緩存常用可定時更新的數據

2019-07-26 11:07ASP.NET之家 ASP.NET教程

這個就先需要先知道一下System.Web.Caching.Cache類,其實在我做WEB應用的時候,我會將一些使用頻繁但是又要經常使用并且需要急時更新的對象放到Cache中,這樣可以很大程序上減少從硬盤上讀取數據的次數。

就是希望讓Web應用程序從一開始運行到結束都一直存在,有人就說為什么不用Application呢?其實Cache是可以一段時間內自動更新數據的,而Application就無法做成這樣的,另外Application在Web這種高并發的系統中一定要考慮線程安全的問題,Application本身就不是線程安全的,而Cache就是線程安全。所以一般我都會在很多對象中我只從Web開始運行的時候從數據庫或文件里獲取一次數據,在不同的頁面中,都是使用Cache的,而且Cache中的數據可能弄成自動更新的,所以一般情況不需要考慮數據更新的問題,另外Cache也是也應用程序關聯的,全部可能駐留在該Web應用程序中的任何頁面。

當然首先我們應該熟悉一下System.Web.Caching.Cache這個類,我這里也就只說說其中使用比較多的幾個方法和屬性,如果需要更詳細的介紹請查閱MSDN。

首先介紹它的Add()方法,將指定的對象添加到Cache對象集合中。

Insert()方法將覆蓋有相同Key的Cache頂。

Remove()從應用程序的Cache對象中移除指定項。

Count屬性,獲取存儲在緩存中對象數。

這里我主要要說的是Add()方法,因為我們如果想要長期存在Cache并且在一段時間內自動替換Cache,就必須非常了解它。我們看看MSDN中對該方法的詳細介紹吧。呵。

C#

public Object Add(
	string key,
	Object value,
	CacheDependency dependencies,
	DateTime absoluteExpiration,
	TimeSpan slidingExpiration,
	CacheItemPriority priority,
	CacheItemRemovedCallback onRemoveCallback
)
參數
key
類型:System.String

用于引用該項的緩存鍵。

value
類型:System.Object

要添加到緩存的項。

dependencies
類型:System.Web.Caching.CacheDependency

該項的文件依賴項或緩存鍵依賴項。當任何依賴項更改時,該對象即無效,并從緩存中移除。如果沒有依賴項,則此參數包含 nullNothingnullptrnull 引用(在 Visual Basic 中為 Nothing)。

absoluteExpiration
類型:System.DateTime

所添加對象將到期并被從緩存中移除的時間。如果使用可調到期,則 absoluteExpiration 參數必須為 NoAbsoluteExpiration。

slidingExpiration
類型:System.TimeSpan

最后一次訪問所添加對象時與該對象到期時之間的時間間隔。如果該值等效于 20 分鐘,則對象在最后一次被訪問 20 分鐘之后將到期并從緩存中移除。如果使用絕對到期,則 slidingExpiration 參數必須為 NoSlidingExpiration。

priority
類型:System.Web.Caching.CacheItemPriority

對象的相對成本,由 CacheItemPriority 枚舉表示。緩存在退出對象時使用該值;具有較低成本的對象在具有較高成本的對象之前被從緩存移除。

onRemoveCallback
類型:System.Web.Caching.CacheItemRemovedCallback

在從緩存中移除對象時所調用的委托(如果提供)。當從緩存中刪除應用程序的對象時,可使用它來通知應用程序。

返回值

類型:System.Object

備注

如果 Cache 中已保存了具有相同 key 參數的項,則對此方法的調用將失敗。若要使用相同的 key 參數覆蓋現有的 Cache 項,請使用 Insert 方法。

無法同時設置 absoluteExpiration 和 slidingExpiration 參數。如果要讓緩存項在特定時間到期,可將 absoluteExpiration 參數設置為特定時間,并將 slidingExpiration 參數設置為 NoSlidingExpiration。

如果要讓緩存項在最后一次訪問該項后的某段時間之后到期,可將 slidingExpiration 參數設置為到期間隔,并將 absoluteExpiration 參數設置為 NoAbsoluteExpiration。

 此段轉載自MSDN

具體的怎樣添加這種緩存了,一般情況我會在母版頁中Init事件或Load事件中添加緩存,因為這樣可以保證引用程序從一開始執行就可以將需要頻繁使用的對象緩存起來了。

protected void Page_Load(object sender, EventArgs e)
{
    Cache.Add("key",                //需要添加到Cache中的鍵
        new { value="添加值"},      //對應的值
        null,                       //緩存依賴項。
        DateTime.Now.AddMinutes(1),//固定緩存時間 
        System.Web.Caching.Cache.NoSlidingExpiration, //可到延時緩存時間,
        System.Web.Caching.CacheItemPriority.NotRemovable, //緩存中的優先級。
        new System.Web.Caching.CacheItemRemovedCallback(OnMoveCacheBack));//移除時調用的回調函數
}

public void OnMoveCacheBack(string key, object value, System.Web.Caching.CacheItemRemovedReason reason)
{
    if (Cache[key] != null)
    {
        Cache.Remove(key);
    }
    Cache.Add("key",                //需要添加到Cache中的鍵
        new { value = "更新值" },      //對應的值
        null,                       //緩存依賴項。
        DateTime.Now.AddMinutes(1),//固定緩存時間 
        System.Web.Caching.Cache.NoSlidingExpiration, //可到延時緩存時間,
        System.Web.Caching.CacheItemPriority.NotRemovable, //緩存中的優先級。
        new System.Web.Caching.CacheItemRemovedCallback(OnMoveCacheBack));//移除時調用的回調函數
}

參數的具體使用上一定要注意三點,

第一就是緩存的依賴項一定要指定為null。

第二固定到期緩存時間不能和可到延時緩存時間同時指定時間,實現我說的定期更換數據的,當然就要使用固定到期緩存時間了。

第三就是該緩存的優先級了,這個也比較關鍵,一定要指定為System.Web.Caching.CacheItemPriority.NotRemovable枚舉值,這樣才不會被自動收回,但是一定要注意該緩存的大小。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩一区二区三区精品 | 精品国产爱久久 | 加勒比久草 | 欧美一区精品二区三区 | 高清在线观看mv的网址免费 | 久久精品视在线观看2 | 久久99精品久久久久久园产越南 | 国产成人高清亚洲一区91 | 操比网| 亚洲国产精久久久久久久 | 紧致肉肉高h | 三级理论在线观看 | 99热这里只有精品国产在热久久 | 关晓彤一级做a爰片性色毛片 | 扒开黑女人p大荫蒂老女人 扒开大腿狠狠挺进视频 | 性绞姿始动作动态图 | 午夜一级影院 | yellow视频在线观看免费 | 欧美成人精品福利网站 | 男人的天堂久久精品激情 | 亚洲精品久久啪啪网站成年 | 高h肉厨房 | 欧美肥bb| 国产在线欧美日韩精品一区二区 | 国产一卡2卡3卡4卡公司科普 | 逼逼爱 | 欧美人与禽杂交大片 | 国内精品久久久久久久久久久久 | 日本大乳护士的引诱图片 | 忘忧草秋观看未满十八 | chinses台湾男同志hd | 国产精品久久国产精品99盘 | 亚洲高清一区二区三区四区 | 日韩一级精品视频在线观看 | 波多野结衣无码 | 九九精品成人免费国产片 | 四色6677最新永久网站 | 国产欧美一区二区成人影院 | 香蕉国产精品偷在线播放 | 魔法满屋免费观看完整版中文 | 污黄在线观看 |