1.頁(yè)面緩存
要實(shí)現(xiàn)頁(yè)面輸出緩存,只要將一條 OutputCache 指令添加到頁(yè)面即可。
<%@ OutputCache CacheProfile=" " NoStore="True | False" Duration="#ofseconds" Shared="True | False" Location="Any | Client | Downstream | Server | None | ServerandClient " SqlDependency="database/table name pair | CommandNotification " VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>
CacheProfile
用于定義與該頁(yè)關(guān)聯(lián)的緩存設(shè)置的名稱(chēng)。是可選屬性,默認(rèn)值為空字符("")。需要注意的是,包含在用戶(hù)控件中的@ OutputCache指令不支持此屬性。在頁(yè)面中指定此屬性時(shí),屬性值必須與Web.config文件<outputCacheSettings>配置節(jié)下的outputCacheProfiles元素中的一個(gè)可用項(xiàng)的名稱(chēng)匹配。如果此名稱(chēng)與配置文件項(xiàng)不匹配,將引發(fā)異常。
NoStore
該屬性定義一個(gè)布爾值,用于決定是否阻止敏感信息的二級(jí)存儲(chǔ)。需要注意的是,包含在用戶(hù)控件中的@ OutputCache指令不支持此屬性。將此屬性設(shè)置為true等效于在請(qǐng)求期間執(zhí)行代碼“Response.Cache.SetNoStore();”。
Duration
用于設(shè)置頁(yè)面或者用戶(hù)控件緩存的時(shí)間。單位是秒。通過(guò)設(shè)置該屬性,能夠?yàn)閬?lái)自對(duì)象的HTTP響應(yīng)建立了一個(gè)過(guò)期策略,并將自動(dòng)緩存頁(yè)或用戶(hù)控件輸出。需要注意的是,Duration屬性是必需的,否則將會(huì)引起分析器錯(cuò)誤。
Shared
該屬性定義一個(gè)布爾值,用于確定用戶(hù)控件輸出是否可以由多個(gè)頁(yè)共享。默認(rèn)值為false。注意,包含在ASP.NET頁(yè)中的@ OutputCache指令不支持此屬性。
Location
用于指定輸出緩存項(xiàng)的位置。其屬性值是OutputCacheLocation枚舉值,它們是Any、Client、Downstream、None、Server和ServerAndClient。默認(rèn)值是Any,表示輸出緩存可用于所有請(qǐng)求,包括客戶(hù)端瀏覽器、代理服務(wù)器或處理請(qǐng)求的服務(wù)器上。需要注意的是,包含在用戶(hù)控件中的@ OutputCache指令不支持此屬性。
SqlDependency
該屬性標(biāo)識(shí)一組數(shù)據(jù)庫(kù)/表名稱(chēng)對(duì)的字符串值,頁(yè)或控件的輸出緩存依賴(lài)于這些名稱(chēng)對(duì)。需要注意:SqlCacheDependency類(lèi)監(jiān)視輸出緩存所依賴(lài)的數(shù)據(jù)庫(kù)中的表,因此,當(dāng)更新表中的項(xiàng)時(shí),使用基于表的輪詢(xún)將從緩存中移除這些項(xiàng)。當(dāng)通知(在SQL Server 2005中)與CommandNotification值一起使用時(shí),最終將使用SqlDependency類(lèi)向SQL Server 2005服務(wù)器注冊(cè)查詢(xún)通知。另外,SqlDependency屬性的CommandNotification值僅在ASP.NET頁(yè)中有效。控件只能將基于表的輪詢(xún)用于@ OutputCache指令。
新聞熱點(diǎn)
疑難解答
圖片精選