成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET數(shù)據(jù)緩存四大方案

開(kāi)發(fā) 后端
ASP.NET數(shù)據(jù)緩存不是新產(chǎn)物,但是ASP.NET 2.0賦予數(shù)據(jù)緩存更多屬性和方法,讓ASP.NET數(shù)據(jù)緩存可以在ASP.NET 2.0時(shí)代大展雄風(fēng)。

今天我們將要學(xué)習(xí)的是:ASP.NET數(shù)據(jù)緩存。

接觸過(guò)asp.net 1.x版本的朋友可能會(huì)說(shuō),這不是個(gè)新東西了。

是的,ASP.NET數(shù)據(jù)緩存確實(shí)不是asp.net 2.0的新產(chǎn)物,但是asp.net 2.0賦予數(shù)據(jù)緩存更多屬性和方法,讓數(shù)據(jù)緩存可以在asp.net 2.0時(shí)代大展雄風(fēng)。

數(shù)據(jù)緩存將頻繁被請(qǐng)求的內(nèi)容存貯在服務(wù)器端緩存中,以便這些內(nèi)容被再次請(qǐng)求時(shí)可以更加迅速的反應(yīng),并且很有效的降低了服務(wù)器的資源占用,提升了程序的運(yùn)行性能。

asp.net 2.0支持以下幾種緩存方案:

1、頁(yè)面輸出ASP.NET數(shù)據(jù)緩存

頁(yè)面輸出緩存是一種傳統(tǒng)級(jí)別的相對(duì)簡(jiǎn)單的緩存機(jī)制。它將頁(yè)面數(shù)據(jù)緩存在服務(wù)器內(nèi)存中,當(dāng)有客戶端再次請(qǐng)求這些內(nèi)容的時(shí)候,服務(wù)器可以直接將這些頁(yè)面數(shù)據(jù)輸出,直到數(shù)據(jù)緩存過(guò)期。

頁(yè)面輸出緩存有兩種使用方法:

使用@ OutputCache指令,常見(jiàn)代碼如:

  1. 〈%@ OutputCache Duration="60"   
  2. VaryByParam="sID" Location="Any"%〉  

以上例子定義了頁(yè)面輸出緩存有效時(shí)間為60s,60s后新建緩存;緩存版本因頁(yè)面?zhèn)鬟f的sID參數(shù)不同而不同;Location="Any"指定了。

使用頁(yè)面輸出緩存API該方法在頁(yè)面的程序部分執(zhí)行,常見(jiàn)代碼如:

  1. Response.Cache.SetExpires  
  2. (DataTime.Now.AddSeconds(60));  

上句設(shè)定頁(yè)面緩存有效時(shí)間為60s。


關(guān)于頁(yè)面輸出緩存的屬性還有很多,這里只介紹常用的。詳細(xì)資料請(qǐng)參見(jiàn):http://www.itgao.com/html/2007-04/19811.html

2、頁(yè)面部分緩存

有時(shí)候我們可能并不希望把整個(gè)頁(yè)面都緩存起來(lái),而只是緩存頁(yè)面的某個(gè)部分。常用方法有3種:

使用@ OutputCache指令

這種方法的實(shí)質(zhì)是:將需要緩存的這部分內(nèi)容做成用戶自定義控件,然后為自定義控件設(shè)置頁(yè)面緩存代碼,方法同頁(yè)面輸出緩存。

使用PartialCachingAttribute類

該方法在用戶控件的代碼隱藏文件中設(shè)置控件的緩存配置內(nèi)容如下,

  1. PartialCaching(20)]  
  2. public partial class NewUserControl:UserControl  
  3. {……}  

使用ControlCachePolicy類

使用ControlCachePolicy類有以下注意事項(xiàng)。

一是如果要?jiǎng)?chuàng)建正確有效的ControlCachePolicy類實(shí)例以便設(shè)置控件緩存;

那么必須訪問(wèn)PartialCachingControl類的BasePartialCachingControl.CachePolicy屬性(BasePartialCachingControl是PartialCachingControl類的基類)。

二是ControlCachePolicy實(shí)例僅在控件生命周期的Init和PreRender階段之間,才能成功操作。

例子代碼:

  1. 使用PartialCachingAttribute類實(shí)現(xiàn)設(shè)置用戶控件緩存  
  2. (用戶控件代碼隱藏文件)  
  3. [PartialCaching(100)]  
  4.  
  5. public partial class SimpleControl :   
  6. UserControl  
  7. {......}   
  8. ASP.NET頁(yè)面文件源代碼。  
  9. 使用ControlCachePolicy類實(shí)現(xiàn)設(shè)置用戶控件緩存  
  10. (ASP.NET頁(yè)面文件)   
  11. 〈%@ Page Language="C#" Debug="true" % 〉  
  12. 〈%@ Reference Control="SimpleControl.ascx" % 〉  
  13. 〈script language="C#" runat="server" 〉   
  14. void Page_Init(object sender, System.EventArgs e)  
  15. {  
  16. // 動(dòng)態(tài)加載用戶控件,  
  17. 并返回PartialCachingControl的實(shí)例對(duì)象  
  18. PartialCachingControl pcc = LoadControl  
  19. ("SimpleControl.ascx"as PartialCachingControl;  
  20. // 通過(guò)CachePolicy屬性獲取ControlCachePolicy實(shí)例  
  21. ControlCachePolicy cacheSettings = pcc.CachePolicy;  
  22. // 如果用戶控件的緩存過(guò)期設(shè)置大于60秒,  
  23. 則設(shè)置新的過(guò)期時(shí)間為30秒,并將其設(shè)置為絕對(duì)過(guò)期策略  
  24. if (cacheSettings.Duration  〉 TimeSpan.FromSeconds(60))  
  25. {  
  26. // 設(shè)置用戶控件過(guò)期時(shí)間和緩存過(guò)期策略  
  27. cacheSettings.SetExpires(DateTime.Now.Add 
  28. (TimeSpan.FromSeconds(30)));  
  29. cacheSettings.SetSlidingExpiration(false);  
  30. }  
  31. // 將用戶控件添加到頁(yè)面控件層次結(jié)構(gòu)中  
  32. Controls.Add(pcc);  
  33. }  
  34. 〈/script 〉   

3、應(yīng)用程序數(shù)據(jù)緩存

ASP.NET數(shù)據(jù)緩存的主要功能是在內(nèi)存中存儲(chǔ)各種與應(yīng)用程序相關(guān)的對(duì)象。方法有三種:


指定鍵和值

Cache["keyName"] = "123";

該語(yǔ)句將新建或者重寫(xiě)名稱為txtName的緩存,并賦值為123。

使用Add方法

  1. Cache.Add("keyName","123",null,DataTime.  
  2. Now.AddSeconds(60),TimeSpan.Zero,  
  3. CacheItemPriority.High,onRemove);  

該句實(shí)現(xiàn)上例同樣的功能,并設(shè)定其緩存依賴項(xiàng)為null;緩存有效時(shí)間為60s;***一次訪問(wèn)所添加對(duì)象時(shí)到該對(duì)象過(guò)期時(shí)間的時(shí)間間隔為零(TimeSpan.Zero);緩存對(duì)象優(yōu)先級(jí)為High;當(dāng)緩存被刪除時(shí)調(diào)用委托名稱為onRemove。

使用Insert方法

Insert方法和Add方法使用方法基本一致,但I(xiàn)nsert方法還有幾種自己的重載后的方法,例如:

  1. Cache.Insert("keyName","123");  

4、緩存依賴

ASP.NET數(shù)據(jù)緩存的好處很多,但他也有弊端。比如說(shuō)數(shù)據(jù)的實(shí)時(shí)性,用戶獲取的頁(yè)面可能是幾十秒甚至是幾個(gè)小時(shí)以前的服務(wù)器緩存信息,這一點(diǎn)對(duì)于實(shí)時(shí)性要求比較高的程序來(lái)說(shuō)是不可容忍的。這時(shí)候我們可以通過(guò)設(shè)定緩存依賴,通過(guò)對(duì)依賴文件的更改變動(dòng)情況的判斷,來(lái)決定程序是否需要重建(刷新)緩存。


緩存依賴的方式有很多種,這里我們著重講解自定義依賴緩存: 自定義緩存依賴

代碼:

  1. string fileName = Server.MapPath  
  2. ("file.xml");//設(shè)置文件路徑  
  3. DateTime dt = DateTime.Now;  
  4. //設(shè)置跟蹤依賴文件的開(kāi)始時(shí)間  
  5. CacheDependency dep = new CacheDependency  
  6. (fileName,dt);//創(chuàng)建依賴對(duì)象  

【編輯推薦】

  1. ASP.NET環(huán)境下的Shell函數(shù)
  2. 在ASP.NET中向數(shù)據(jù)庫(kù)批量插入數(shù)據(jù)
  3. ASP.NET用Post方式向網(wǎng)頁(yè)發(fā)送數(shù)據(jù)
  4. ASP.NET 2.0部署WEB應(yīng)用程序淺析
  5. ASP.NET中的HttpWorkerRequest對(duì)像
責(zé)任編輯:冰荷 來(lái)源: it55
相關(guān)推薦

2009-07-24 13:01:44

ASP.NET頁(yè)面跳轉(zhuǎn)

2009-08-03 18:47:12

ASP.NET數(shù)據(jù)緩存

2009-08-03 18:35:51

ASP.NET數(shù)據(jù)緩存

2009-07-31 10:23:44

緩存頁(yè)面ASP.NET緩存

2010-05-07 08:59:50

ASP.NET

2009-07-28 10:36:37

ASP.NET讀取Ex

2021-08-13 09:55:42

數(shù)據(jù)中心功耗IT支出

2021-07-30 17:47:46

數(shù)據(jù)中心電力能源

2011-11-14 09:58:33

2009-07-31 09:57:47

ASP.NET數(shù)據(jù)庫(kù)緩

2009-08-17 17:36:57

ASP.NET緩存數(shù)據(jù)

2009-07-29 10:35:51

ASP.NET緩存

2009-07-31 10:33:54

ASP.NET頁(yè)面輸出

2009-08-04 15:22:33

ASP.NET緩存機(jī)制

2009-07-29 14:35:34

頁(yè)面輸出緩存ASP.NET

2009-07-24 16:46:25

CSS實(shí)現(xiàn)多界面ASP.NET學(xué)習(xí)

2024-10-31 11:52:05

緩存預(yù)熱系統(tǒng)

2009-05-11 13:48:00

ASP.NET 2.0緩存效率

2009-08-17 16:59:36

ASP.NET緩存機(jī)制

2009-07-29 15:34:13

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲综合在线播放 | 国产精品久久久久久久久久久久久久 | 久久久久久久一区二区三区 | 91在线视频观看免费 | 日韩视频一区 | 麻豆av片| 日韩视频在线播放 | 国产亚洲一区二区三区在线 | 欧美视频成人 | 午夜久久| 免费在线成人 | 日韩欧美亚洲 | 91色视频在线| 自拍偷拍精品 | 玖玖久久 | 国产精品日韩在线观看 | 国产精品a免费一区久久电影 | 成人精品国产一区二区4080 | 成人h电影在线观看 | 久久久久久久夜 | 一级黄色av电影 | 成人一区二区三区在线 | 成人福利在线视频 | 国产精品一区三区 | 男人的天堂久久 | 欧美一级在线 | 精品国产欧美 | 青春草91 | 国产精品性做久久久久久 | 热久久久 | 91久久电影 | 国产精品欧美一区二区三区 | 亚洲一二三在线 | 亚洲毛片网站 | 欧美国产一区二区 | 91免费观看 | 精品欧美视频 | 成人免费一区二区三区视频网站 | 亚洲高清中文字幕 | 91国在线高清视频 | 日韩最新网址 |