您好,登錄后才能下訂單哦!
ASP.NET數據緩存的方案是怎么樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
ASP.NET數據緩存。
接觸過asp.net 1.x版本的朋友可能會說,這不是個新東西了。
是的,ASP.NET數據緩存確實不是asp.net 2.0的新產物,但是asp.net 2.0賦予數據緩存更多屬性和方法,讓數據緩存可以在asp.net 2.0時代大展雄風。
數據緩存將頻繁被請求的內容存貯在服務器端緩存中,以便這些內容被再次請求時可以更加迅速的反應,并且很有效的降低了服務器的資源占用,提升了程序的運行性能。
asp.net 2.0支持以下幾種緩存方案:
1、頁面輸出ASP.NET數據緩存
頁面輸出緩存是一種傳統級別的相對簡單的緩存機制。它將頁面數據緩存在服務器內存中,當有客戶端再次請求這些內容的時候,服務器可以直接將這些頁面數據輸出,直到數據緩存過期。
頁面輸出緩存有兩種使用方法:
使用@ OutputCache指令,常見代碼如:
〈%@ OutputCache Duration="60" VaryByParam="sID" Location="Any"%〉
以上例子定義了頁面輸出緩存有效時間為60s,60s后新建緩存;緩存版本因頁面傳遞的sID參數不同而不同;Location="Any"指定了。
使用頁面輸出緩存API該方法在頁面的程序部分執行,常見代碼如:
Response.Cache.SetExpires (DataTime.Now.AddSeconds(60));
上句設定頁面緩存有效時間為60s。
關于頁面輸出緩存的屬性還有很多,這里只介紹常用的。詳細資料請參見:http://www.itgao.com/html/2007-04/19811.html
2、頁面部分緩存
有時候我們可能并不希望把整個頁面都緩存起來,而只是緩存頁面的某個部分。常用方法有3種:
使用@ OutputCache指令
這種方法的實質是:將需要緩存的這部分內容做成用戶自定義控件,然后為自定義控件設置頁面緩存代碼,方法同頁面輸出緩存。
使用PartialCachingAttribute類
該方法在用戶控件的代碼隱藏文件中設置控件的緩存配置內容如下,
PartialCaching(20)] public partial class NewUserControl:UserControl {……}
使用ControlCachePolicy類
使用ControlCachePolicy類有以下注意事項。
一是如果要創建正確有效的ControlCachePolicy類實例以便設置控件緩存;
那么必須訪問PartialCachingControl類的BasePartialCachingControl.CachePolicy屬性(BasePartialCachingControl是PartialCachingControl類的基類)。
二是ControlCachePolicy實例僅在控件生命周期的Init和PreRender階段之間,才能成功操作。
例子代碼:
使用PartialCachingAttribute類實現設置用戶控件緩存 (用戶控件代碼隱藏文件) [PartialCaching(100)] public partial class SimpleControl : UserControl {......} ASP.NET頁面文件源代碼。 使用ControlCachePolicy類實現設置用戶控件緩存 (ASP.NET頁面文件) 〈%@ Page Language="C#" Debug="true" % 〉 〈%@ Reference Control="SimpleControl.ascx" % 〉 〈script language="C#" runat="server" 〉 void Page_Init(object sender, System.EventArgs e) { // 動態加載用戶控件, 并返回PartialCachingControl的實例對象 PartialCachingControl pcc = LoadControl ("SimpleControl.ascx") as PartialCachingControl; // 通過CachePolicy屬性獲取ControlCachePolicy實例 ControlCachePolicy cacheSettings = pcc.CachePolicy; // 如果用戶控件的緩存過期設置大于60秒, 則設置新的過期時間為30秒,并將其設置為絕對過期策略 if (cacheSettings.Duration 〉 TimeSpan.FromSeconds(60)) { // 設置用戶控件過期時間和緩存過期策略 cacheSettings.SetExpires(DateTime.Now.Add (TimeSpan.FromSeconds(30))); cacheSettings.SetSlidingExpiration(false); } // 將用戶控件添加到頁面控件層次結構中 Controls.Add(pcc); } 〈/script 〉
3、應用程序數據緩存
ASP.NET數據緩存的主要功能是在內存中存儲各種與應用程序相關的對象。方法有三種:
指定鍵和值
Cache["keyName"] = "123";
該語句將新建或者重寫名稱為txtName的緩存,并賦值為123。
使用Add方法
Cache.Add("keyName","123",null,DataTime. Now.AddSeconds(60),TimeSpan.Zero, CacheItemPriority.High,onRemove);
該句實現上例同樣的功能,并設定其緩存依賴項為null;緩存有效時間為60s;***一次訪問所添加對象時到該對象過期時間的時間間隔為零(TimeSpan.Zero);緩存對象優先級為High;當緩存被刪除時調用委托名稱為onRemove。
使用Insert方法
Insert方法和Add方法使用方法基本一致,但Insert方法還有幾種自己的重載后的方法,例如:
Cache.Insert("keyName","123");
4、緩存依賴
ASP.NET數據緩存的好處很多,但他也有弊端。比如說數據的實時性,用戶獲取的頁面可能是幾十秒甚至是幾個小時以前的服務器緩存信息,這一點對于實時性要求比較高的程序來說是不可容忍的。這時候我們可以通過設定緩存依賴,通過對依賴文件的更改變動情況的判斷,來決定程序是否需要重建(刷新)緩存。
緩存依賴的方式有很多種,這里我們著重講解自定義依賴緩存: 自定義緩存依賴
代碼:
string fileName = Server.MapPath ("file.xml");//設置文件路徑 DateTime dt = DateTime.Now; //設置跟蹤依賴文件的開始時間 CacheDependency dep = new CacheDependency (fileName,dt);//創建依賴對象
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。