激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

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

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

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

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

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

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

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

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

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

Count屬性,獲取存儲在緩存中對象數(shù)。

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

C#

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

用于引用該項的緩存鍵。

value
類型:System.Object

要添加到緩存的項。

dependencies
類型:System.Web.Caching.CacheDependency

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

absoluteExpiration
類型:System.DateTime

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

slidingExpiration
類型:System.TimeSpan

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

priority
類型:System.Web.Caching.CacheItemPriority

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

onRemoveCallback
類型:System.Web.Caching.CacheItemRemovedCallback

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

返回值

類型:System.Object

備注

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

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

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

 此段轉(zhuǎn)載自MSDN

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

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

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 = "更新值" },      //對應(yīng)的值
        null,                       //緩存依賴項。
        DateTime.Now.AddMinutes(1),//固定緩存時間 
        System.Web.Caching.Cache.NoSlidingExpiration, //可到延時緩存時間,
        System.Web.Caching.CacheItemPriority.NotRemovable, //緩存中的優(yōu)先級。
        new System.Web.Caching.CacheItemRemovedCallback(OnMoveCacheBack));//移除時調(diào)用的回調(diào)函數(shù)
}

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

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

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产91九色 | 一级片国产片 | 欧美雌雄另类xxxxx | 国产刺激高潮av | 91精品国产乱码久久久久久久久 | 在线视频观看一区二区 | 黄色视屏免费观看 | 在线a毛片 | 精品国产乱码久久久久久丨区2区 | 欧美日韩国产中文字幕 | 特一级黄色毛片 | 久久久久中精品中文字幕19 | 91网站在线播放 | 成人网视频 | avhd101高清在线迷片麻豆 | 国产成人综合在线视频 | 青青操精品 | 日本高清在线播放 | 91精品福利视频 | 激情视频在线播放 | 国产精品探花在线观看 | 国产毛片网站 | 亚洲最新无码中文字幕久久 | 国产99久久久国产精品下药 | 亚洲精品成人在线视频 | 性高潮一级片 | 久久福利精品 | 美女久久久久久久久 | 国产精品性夜天天视频 | 久久综合九色 | 国产午夜精品一区二区三区在线观看 | 亚洲欧美日韩精品久久亚洲区 | 久久精品视频黄色 | av在线免费看网址 | 亚洲欧美在线视频免费 | 一区二区国产在线 | 久久国产亚洲视频 | 日本成年网 | 草操视频 | 国产美女视频一区二区三区 | 免费观看视频网站 |