以下1什麼1.1什麼的看不懂,請直接拉到下方去吧!
Cache快取
參閱: Cache Configuration,快取組態, Cache Removal,快取移除
1. Page output caching網頁輸出快取
1.1 Full page caching完整網頁快取
1.1.1 <%@ OutputCache Duration="3600" VaryByParam="None" %>
1.1.2 Response.Cache
1.1.2.1
1. Response.Cache.SetExpires(DateTime.Now.AddSeconds(3600))
2. Response.Cache.SetCacheability(HttpCacheability.Public)
1.1.2.2 Response.Cache --> Page.Response.Cache --> HttpResponse.Cache --> HttpCachePolicy
1.2 Partial page caching部分網頁快取
1.2.1 Control caching
1.2.1.1
1. 只快取指定的區塊
2. User Control, *.ascx
1.2.1.1.1
1. 於*.ascs加入指示
<%@ OutputCache Duration="3600" VaryByParam="None" %>
1.2.1.1.2
2. 於*.ascs.vb加入PartialCachingAttribute類別
Partial Class UserControls_Name ...
1.2.2 Post-Cache Substitution快取後置換
1.2.2.1
1. 指定的區塊不要快取
2. Substitution
3. AdRotator
1.2.2.1.1 2.1 Substitution中必須使用「Shared」共用/靜態方法
1.2.2.1.2 3.1 AdRotator內部已實作快取後置換
2. Application data caching應用程式資料快取
2.1 Key / Value (索引鍵/數值)
2.1.1
Cache("FirstName") = "KingKong"
Cache("LastName") = "Bruce"
2.1.1.1
1. Response.Cache屬性 --> System.Web.HttpResponse.Cache
2. Cache("")物件 --> System.Web.Caching.Cache類別
2.2 Cache.Add()
2.2.1
Public Function Add( _
key As String, _ '快取資料項目索引鍵
value As Object, _ '要加入至快取的項目值
dependencies As CacheDependency, _ '相依性,如無為Nothing
absoluteExpiration As DateTime, _ '絕對期限
slidingExpiration As TimeSpan, _ '滑動期限
priority As CacheItemPriority, _ '優先權
onRemoveCallback As CacheItemRemovedCallback _ '當物件從快取移除時,會呼叫委派(如果有)
) As Object
2.2.1.1 Cache.Add()方法無多載
2.2.1.2
1. 絕對/滑動期限兩者只能選擇一個來使用
2. 如使用absoluteExpiration則slidingExpiration參數必須為NoSlidingExpiration
3. 如使用slidingExpiration則absoluteExpiration參數必須為NoAbsoluteExpiration
參閱: Expiration,資料過期 (絕對/滑動期限)
2.2.2
Cache.Add("UserName", txtUserName.Text, Nothing, _
System.WebCaching.Cache.NoAbsoluteExpiration, _
System.Web.Caching.Cache.NoSlidingExpiration, _
System.Web.Caching.CacheItemPriority.Default, _
Nothing)
2.3 Cache.Inser()
2.3.1
1. Cache.Insert(key, value)
2. Cache.Insert(key, value, dependencies )
3. Cache.Insert(Key, value, dependencies, absoluteExpiration, slidingExpiration )
4. Cache.Insert(key, value, dependencies, absoluteExpiration, slidingExpiration, priority, onRemoveCallback )
2.3.1.1 Cache.Insert()方法本身為多載型式
S1.
1. 針對ASP.NET Page頁面輸出的HTML進行快取。
2. 快取HTML物件是「視覺化」的物件內容。
3. 多使用<%@ OutputCache%>宣告。
(Page output caching網頁輸出快取)
S2.
1. 針對應用程式內的資料快取(DataSet, Key/Value, ...)
2. 必須使用 Cache(" ") Is Nothing 判斷是否有快取資料,僅使用 IsPostBack 來判斷,會有問題
(Application data caching應用程式資料快取)
A1. Cache Configuration,快取組態
參閱: Cache快取
A1.1 Machine.config/Web.config
A1.1.1 網頁輸出快取組態
A1.1.1.1
A1.1.1.1.1 影響整個網站所有頁面
A1.1.1.2
A1.1.1.2.1 只影響套用的頁面
A1.1.1.3 個別網頁(Individual Page)
A1.1.1.4 使用者控制項
A1.1.2 快取API組態設定
A1.1.2.1
A1.1.2.1.1 影響網站全域應用程式
A1.1.3 SQL快取相依性組態設定
A1.1.3.1
A1.1.3.1.1 只影響套用的頁面
A1.2 <%@ OutputCache CacheProfile="Cache3600Seconds" VaryByParam="None"%>
A2. Cache Removal,快取移除
參閱: Cache快取
A2.1 自動移除
A2.1.1 Scavenging,記憶體不足
A2.1.1.1 CacheItemPriority
A2.1.1.1.1 NotRemovable > High > AboveNormal > Normal(Default) > BelowNormal > Low
A2.1.2 Expiration,資料過期
參閱:
1. 絕對/滑動期限兩者只能選擇一個來使用
2. 如使用absoluteExpiration則slidingExpiration參數必須為NoSlidingExpiration
3. 如使用slidingExpiration則absoluteExpiration參數必須為NoAbsoluteExpiration (絕對/滑動期限)
A2.1.3 Dependency,相依性改變
A2.1.3.1 1. Key Dependence
一個快取項目相依於其他數個快取項目
A2.1.3.1.1 直接使用CacheDependency類別
參閱: 2. File Dependence
相依於外部檔案
A2.1.3.2 2. File Dependence
相依於外部檔案
參閱: 直接使用CacheDependency類別
A2.1.3.3 3. SQL Dependence
相依於MS SQL Server中資料表的變更
A2.1.3.3.1 使用SqlCacheDependency類別
A2.1.3.4 4. Aggregate Dependence
彙總相依性,相依於多個項目
A2.1.3.4.1 使用AggregateCacheDependency類別
A2.1.3.5 5. Custom Dependence
在自己程式碼中建立的相依性設定。
A2.1.3.5.1 自行繼承CacheDependency類別來實作符合需求的相依性類別
A2.2 手動移除
A2.2.1 Cache.Remove("key")
請參考:
1. http://share.xmind.net/kkbruce/cache-cache-1/
2.EmbedViewer
3. PNG圖下載
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。