真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NET數(shù)據(jù)緩存的方案是怎么樣的

ASP.NET數(shù)據(jù)緩存的方案是怎么樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的定陶網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

接觸過asp.net 1.x版本的朋友可能會說,這不是個新東西了。

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

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

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

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

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

頁面輸出緩存有兩種使用方法:

使用@ OutputCache指令,常見代碼如:

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

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

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

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

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


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

2、頁面部分緩存

有時候我們可能并不希望把整個頁面都緩存起來,而只是緩存頁面的某個部分。常用方法有3種:

使用@ OutputCache指令

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

使用PartialCachingAttribute類

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

PartialCaching(20)]  public partial class NewUserControl:UserControl  {……}

使用ControlCachePolicy類

使用ControlCachePolicy類有以下注意事項。

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

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

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

例子代碼:

使用PartialCachingAttribute類實現(xiàn)設(shè)置用戶控件緩存  (用戶控件代碼隱藏文件)  [PartialCaching(100)]   public partial class SimpleControl :   UserControl  {......}   ASP.NET頁面文件源代碼。  使用ControlCachePolicy類實現(xiàn)設(shè)置用戶控件緩存  (ASP.NET頁面文件)   〈%@ Page Language="C#" Debug="true" % 〉  〈%@ Reference Control="SimpleControl.ascx" % 〉  〈script language="C#" runat="server" 〉   void Page_Init(object sender, System.EventArgs e)  {  // 動態(tài)加載用戶控件,  并返回PartialCachingControl的實例對象  PartialCachingControl pcc = LoadControl  ("SimpleControl.ascx") as PartialCachingControl;  // 通過CachePolicy屬性獲取ControlCachePolicy實例  ControlCachePolicy cacheSettings = pcc.CachePolicy;  // 如果用戶控件的緩存過期設(shè)置大于60秒,  則設(shè)置新的過期時間為30秒,并將其設(shè)置為絕對過期策略  if (cacheSettings.Duration  〉 TimeSpan.FromSeconds(60))  {  // 設(shè)置用戶控件過期時間和緩存過期策略  cacheSettings.SetExpires(DateTime.Now.Add (TimeSpan.FromSeconds(30)));  cacheSettings.SetSlidingExpiration(false);  }  // 將用戶控件添加到頁面控件層次結(jié)構(gòu)中  Controls.Add(pcc);  }  〈/script 〉

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

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


指定鍵和值

Cache["keyName"] = "123";

該語句將新建或者重寫名稱為txtName的緩存,并賦值為123。

使用Add方法

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

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

使用Insert方法

Insert方法和Add方法使用方法基本一致,但Insert方法還有幾種自己的重載后的方法,例如:

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

4、緩存依賴

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


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

代碼:

string fileName = Server.MapPath  ("file.xml");//設(shè)置文件路徑  DateTime dt = DateTime.Now;  //設(shè)置跟蹤依賴文件的開始時間  CacheDependency dep = new CacheDependency  (fileName,dt);//創(chuàng)建依賴對象

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


當前文章:ASP.NET數(shù)據(jù)緩存的方案是怎么樣的
網(wǎng)站網(wǎng)址:http://weahome.cn/article/pooigi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部