asp.net|緩衝
命名空間: System.Web.Caching ,這個空間是ASP.NET的基礎結構中的重要部分,比如:session就是儲存在cache中的。
Cache對象有兩種層級的存取控制:public和private的。private是被系統組件保留使用的;只有public的才是留給程式員的介面,可以使用IEnumerable介面來枚舉public狀態下的資料。
ASP.NET 提供了3中層級的cache:
Page level---緩衝整個頁面;
Page fragment---可以緩衝諸如.ascs等控制項,是頁面的一部分緩衝;
Programmatic caching---通過public Cache API 編程快取資料;
在 ASP.NET 2.0 中page level 的緩衝機制被擴充到支援依賴資料庫的緩衝。也就是可以把page level頁面快取資料和資料庫表中的資料設定為依賴。當資料表中資料變動後page level的緩衝就自動失效,這可就解決了page level緩衝時間不好控制的難處。
看個例子:
在ASP.NET 1.x 中page level的代碼:
<%@ outputcache duration=”3600” varybyparam=”ProdID” %>
在ASP.NET 2.0 中的page level的代碼:
<%@ outputcache duration=”3600” varybyparam=”ProdID” sqldependency=”Northwind:Products” %>
注意:雖然頁面的緩衝時間是3600秒,但是如果Northwind:Products表資料變動時,那麼這個緩衝就失效了。
說明:sqldependency 是一個新增的屬性,由2部分組成:資料來源和表名,配置在:web.config中,詳見相關文檔。
ASP.NET 2.0 還提供了SqlCacheDependency 和CacheDependency 兩個緩衝相關類。