OutputCache各参数的说明【转】
生活随笔
收集整理的這篇文章主要介紹了
OutputCache各参数的说明【转】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Duration 緩存時間,以秒為單位,這個除非你的Location=None,可以不添加此屬性,其余時候都是必須的。 Location Location當(dāng)被設(shè)置為None時,其余的任何設(shè)置將不起作用 Any——頁面被緩存在瀏覽器、代理服務(wù)器端和web服務(wù)器端; Client——緩存在瀏覽器; DownStream——頁面被緩存在瀏覽器和任何的代理服務(wù)器端; None——頁面不緩存; ServerAndClient——頁面被緩存在瀏覽器和web服務(wù)器端; 默認為Any 。 !該屬性不支持用戶控件(.ascx文件)中的@OutputCache指令。?? Shared 用來控制用戶控件輸出內(nèi)容是否能夠被多個頁面共享。默認值為false。 !該屬性不支持ASP.NET頁面(.aspx文件)中的@OutputCache指令。 VaryByCustom 任何自定義輸出緩存的文字。如果將該屬性設(shè)置為browser,將會緩存多種的瀏覽器名稱與版本信息。當(dāng)使用了自定義字符串之后,就必須在應(yīng)用程序的Global.asax文件中對HttpApplication.GetVaryByCustomString成員進行重載。 VaryByHeader 多個不同輸出緩存所使用的HTTP響應(yīng)頭信息,并且通過分號進行分隔。當(dāng)設(shè)置為多個響應(yīng)頭信息時,輸出緩存將會為每個已指定的頭信息緩存多個不同版本的響應(yīng)文檔。 Accept-Language——代表請求頁面中用戶最希望的有優(yōu)先級順序的人類語言列表; User-Agent——代表請求頁面設(shè)備的類型; Cookie——代表當(dāng)前域名下創(chuàng)建的瀏覽器的cookie。項。 用戶控件中的@OutputCache指令不支持該屬性。 例如:設(shè)置VaryByHeader="Accept-Language" 當(dāng)網(wǎng)站有多種語言版本時,可以為每種語言都進行緩存 可以更改IE的語言設(shè)置:IE—>工具àInternet選項à常規(guī)à語言來查看效果 VaryByParam 用于多個輸出緩存的字符串列表,并以分號進行分隔。默認時,該字符串與GET方法傳遞的參數(shù)或與POST方法傳遞的變量相對應(yīng)。當(dāng)被設(shè)置為多個參數(shù)時,輸出緩存將會為每個參數(shù)都準(zhǔn)備一個與之相對應(yīng)的文檔版本。可能值包括none,*,以及任何有效的查詢串或POST參數(shù)名稱。 如果您不想要為不同的已緩存內(nèi)容指定參數(shù),可以將其設(shè)置為none。如果想要指定所有的已緩存內(nèi)容參數(shù),可以設(shè)置為*。 例如: 如果命令設(shè)置為: <%@ OutputCache Duration="60"? VaryByParam="ProductType" %> 當(dāng)請求路徑 bitauto.com/test.aspx?ProductType=1發(fā)生時,會建立緩存 當(dāng)ProductType的值變?yōu)?時,系統(tǒng)會建立新的緩存,但是原來的緩存在有效期內(nèi)并不會失效。相當(dāng)于為不同的ProductType值建立了不同版本的緩存。如果熟悉.Net數(shù)據(jù)緩存的話,很類似于下面的用法。 Cache.Add(“productType1”,cachedObject) Cache.Add(“productType2”,cachedObject) VaryByControl 指定用戶控件的輸出緩存列表,并以分號作為分隔。字符串由被定義在用戶控件中的ASP.NET服務(wù)器端控件的ID屬性組成。 例如下面:根據(jù)頁面上下拉列表控件的選擇的值不同進行不同的緩存輸出 <%@ OutputCache Duration="100" VaryByControl="dropTest"%> SqlDependency 指定緩存失效的數(shù)據(jù)庫依賴項。可以具體到數(shù)據(jù)庫和表。 具體配置具體要經(jīng)過幾個步驟: 1.?????? 注冊連接池 命令:aspnet_regsql -S 192.168.30.220\SQL2K -U sa -P sa -ed -d pubs -et -t test專門注冊連接池的工具 在sql數(shù)據(jù)庫的數(shù)據(jù) 庫改變了,才改變緩存。 參數(shù): _s 制定注冊的服務(wù)器
_u和 _p 說明是sql數(shù)據(jù)庫的授權(quán)模式、 _d 指定數(shù)據(jù)庫的名字 _ed 說明緩存生效。 示例: aspnet_regsql -S 192.168.30.220\SQL2K -U sa -P sa -ed -d pubs -et -t test 進行outputcache配置
<%@ OutputCache SqlDependency="pubs:test" Duration="100" VaryByParam="id"%> 2.?????? 設(shè)置WebConfig?????? <connectionStrings> <add???????? name="mySqlServer" connectionString="Server=192.168.30.220\SQL2K;Database=pubs;uid=sa;pwd=sa;"/>? </connectionStrings> 3.??????? <caching> <sqlCacheDependency enabled="true"> <databases> <add connectionStringName="mySqlServer" pollTime="500" /> </databases> </sqlCacheDependency> </caching> name:必須是數(shù)據(jù)庫的名字 connectionStringName:連接字符串的名稱 除了可以建立數(shù)據(jù)庫依賴,還可以建立文件依賴或者其他依賴(可以看”參考文檔5”)。 CacheProfile 用于定義與該頁關(guān)聯(lián)的緩存設(shè)置的名稱。是可選屬性,默認值為空字符("")。需要注意的是,包含在用戶控件中的@ OutputCache指令不支持此屬性。在頁面中指定此屬性時,屬性值必須與Web.config文件<outputCacheSettings>配置節(jié)下的outputCacheProfiles元素中的一個可用項的名稱匹配。如果此名稱與配置文件項不匹配,將引發(fā)異常。 示例: <%@ OutputCache CacheProfile="Cache30Seconds" %> 配置: Web.config <caching> <outputCacheSettings> <outputCacheProfiles> <add name="Cache30Seconds" duration="30" varyByParam="none" /> </outputCacheProfiles> </outputCacheSettings> </caching> Add節(jié)里面的各個屬性和OutPutCache相對應(yīng) 注意OutputCache生命優(yōu)先于outputCacheProfiles配置 比如:頁面緩存10s, outputCacheProfiles設(shè)置緩存20s,則最后緩存10s NoStore bool值,用于決定是否阻止敏感信息的二級存儲,默認值為 false DiskCacheable: 在.Net?? 2.0被遺棄 注:標(biāo)紅的是經(jīng)常用的屬性。 UserControl和Page中各命令參數(shù)比較(空 表示不支持) 簡單介紹
?Control
?Page
?
Duration
?緩存時間
?支持
?支持
?
Location
?存儲位置
?
?支持
?
Shared
?多頁面共享
?支持
?
?
VaryByParam
?隨參數(shù)改變
?支持
?支持
?
VaryByControl
?隨控件改變?
?支持
?
?
VaryByHeader
?Http協(xié)議頭
?
?支持
?
VaryByCustom
?自定義改變值
?支持
?支持
?
SqlDependency
?Sql依賴
?支持
?支持
?
CacheProfile
?Cache配置節(jié)名稱
?
?支持
?
NoStore
?是否有其他存儲介質(zhì)
?
?支持
? UserControl和Page中的一些區(qū)別: 1.作用范圍:UserControl為頁面局部的緩存,Page為頁面全部的緩存 2.優(yōu)先級:????? Page緩存優(yōu)先級高于UserControl 例如: UserControl :?????????? <%@ OutputCache Duration="60"? VaryByParam="ProductType" %> Page? : <%@ OutputCache Duration="60"? VaryByParam=" none" %> 當(dāng)ProductType =1改變時,Page緩存并不更新(UserControl并不更新) 如果Page去掉 OutputCache命令,則ProductType更新時,Page會更新(Control更新) 4.?????? 頁面生命OutPutCahe緩存策略優(yōu)先于后臺代碼: 比如<%@ OutputCache? Duration="100" Location="Any" %>緩存100S 代碼:Response.Cache.SetExpires(DateTime.Now.AddMinutes(1)); 結(jié)果緩存100秒 其他實現(xiàn): 1.根據(jù)不同的語言緩存不同的版本: Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));??????? Response.Cache.SetCacheability(HttpCacheability.Public);??????? Response.Cache.SetValidUntilExpires(true); Response.Cache.VaryByHeaders["Accept-Language"] = true; 2.文檔以來緩存: Response.AddFileDependency(Server.MapPath(Request.ApplicationPath + "/Web.Config")); Response.Cache.SetExpires(DateTime.Now.AddMinutes(1)); Response.Cache.SetCacheability(HttpCacheability.Public); 參考文檔: 1.?????? ASP.NET 緩存:方法和最佳實踐 http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/ASP.NETCaching-TechniquesandBestPractiCEs.mspx?mfr=true 2.?????? 數(shù)據(jù)緩存中頁面部分和用戶控件部分的說明
http://www.cnblogs.com/chenou/articles/603547.html 3.?????? ASP.NET緩存策略經(jīng)驗談 http://www.cnblogs.com/imissherso/articles/635563.html 4.?????? ASP.NET 2.0的頁面緩存功能介紹
http://www.cnblogs.com/Joshualang/archive/2007/01/24/OutputCache.html 5.?????? 移除用戶控件的輸出緩存(OutputCache) http://www.cnblogs.com/Truly/archive/2006/10/12/527206.aspx 6.?????? P.NET 2.0 緩存技術(shù) (原創(chuàng)) http://www.cnblogs.com/ghd258/archive/2005/11/03/248896.html 7.?????? 頁面輸出緩存 http://www.cnblogs.com/hide0511/archive/2006/10/21/535702.html
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/laolaolai/archive/2010/02/09/5301212.aspx
_u和 _p 說明是sql數(shù)據(jù)庫的授權(quán)模式、 _d 指定數(shù)據(jù)庫的名字 _ed 說明緩存生效。 示例: aspnet_regsql -S 192.168.30.220\SQL2K -U sa -P sa -ed -d pubs -et -t test 進行outputcache配置
<%@ OutputCache SqlDependency="pubs:test" Duration="100" VaryByParam="id"%> 2.?????? 設(shè)置WebConfig?????? <connectionStrings> <add???????? name="mySqlServer" connectionString="Server=192.168.30.220\SQL2K;Database=pubs;uid=sa;pwd=sa;"/>? </connectionStrings> 3.??????? <caching> <sqlCacheDependency enabled="true"> <databases> <add connectionStringName="mySqlServer" pollTime="500" /> </databases> </sqlCacheDependency> </caching> name:必須是數(shù)據(jù)庫的名字 connectionStringName:連接字符串的名稱 除了可以建立數(shù)據(jù)庫依賴,還可以建立文件依賴或者其他依賴(可以看”參考文檔5”)。 CacheProfile 用于定義與該頁關(guān)聯(lián)的緩存設(shè)置的名稱。是可選屬性,默認值為空字符("")。需要注意的是,包含在用戶控件中的@ OutputCache指令不支持此屬性。在頁面中指定此屬性時,屬性值必須與Web.config文件<outputCacheSettings>配置節(jié)下的outputCacheProfiles元素中的一個可用項的名稱匹配。如果此名稱與配置文件項不匹配,將引發(fā)異常。 示例: <%@ OutputCache CacheProfile="Cache30Seconds" %> 配置: Web.config <caching> <outputCacheSettings> <outputCacheProfiles> <add name="Cache30Seconds" duration="30" varyByParam="none" /> </outputCacheProfiles> </outputCacheSettings> </caching> Add節(jié)里面的各個屬性和OutPutCache相對應(yīng) 注意OutputCache生命優(yōu)先于outputCacheProfiles配置 比如:頁面緩存10s, outputCacheProfiles設(shè)置緩存20s,則最后緩存10s NoStore bool值,用于決定是否阻止敏感信息的二級存儲,默認值為 false DiskCacheable: 在.Net?? 2.0被遺棄 注:標(biāo)紅的是經(jīng)常用的屬性。 UserControl和Page中各命令參數(shù)比較(空 表示不支持) 簡單介紹
?Control
?Page
?
Duration
?緩存時間
?支持
?支持
?
Location
?存儲位置
?
?支持
?
Shared
?多頁面共享
?支持
?
?
VaryByParam
?隨參數(shù)改變
?支持
?支持
?
VaryByControl
?隨控件改變?
?支持
?
?
VaryByHeader
?Http協(xié)議頭
?
?支持
?
VaryByCustom
?自定義改變值
?支持
?支持
?
SqlDependency
?Sql依賴
?支持
?支持
?
CacheProfile
?Cache配置節(jié)名稱
?
?支持
?
NoStore
?是否有其他存儲介質(zhì)
?
?支持
? UserControl和Page中的一些區(qū)別: 1.作用范圍:UserControl為頁面局部的緩存,Page為頁面全部的緩存 2.優(yōu)先級:????? Page緩存優(yōu)先級高于UserControl 例如: UserControl :?????????? <%@ OutputCache Duration="60"? VaryByParam="ProductType" %> Page? : <%@ OutputCache Duration="60"? VaryByParam=" none" %> 當(dāng)ProductType =1改變時,Page緩存并不更新(UserControl并不更新) 如果Page去掉 OutputCache命令,則ProductType更新時,Page會更新(Control更新) 4.?????? 頁面生命OutPutCahe緩存策略優(yōu)先于后臺代碼: 比如<%@ OutputCache? Duration="100" Location="Any" %>緩存100S 代碼:Response.Cache.SetExpires(DateTime.Now.AddMinutes(1)); 結(jié)果緩存100秒 其他實現(xiàn): 1.根據(jù)不同的語言緩存不同的版本: Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));??????? Response.Cache.SetCacheability(HttpCacheability.Public);??????? Response.Cache.SetValidUntilExpires(true); Response.Cache.VaryByHeaders["Accept-Language"] = true; 2.文檔以來緩存: Response.AddFileDependency(Server.MapPath(Request.ApplicationPath + "/Web.Config")); Response.Cache.SetExpires(DateTime.Now.AddMinutes(1)); Response.Cache.SetCacheability(HttpCacheability.Public); 參考文檔: 1.?????? ASP.NET 緩存:方法和最佳實踐 http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/ASP.NETCaching-TechniquesandBestPractiCEs.mspx?mfr=true 2.?????? 數(shù)據(jù)緩存中頁面部分和用戶控件部分的說明
http://www.cnblogs.com/chenou/articles/603547.html 3.?????? ASP.NET緩存策略經(jīng)驗談 http://www.cnblogs.com/imissherso/articles/635563.html 4.?????? ASP.NET 2.0的頁面緩存功能介紹
http://www.cnblogs.com/Joshualang/archive/2007/01/24/OutputCache.html 5.?????? 移除用戶控件的輸出緩存(OutputCache) http://www.cnblogs.com/Truly/archive/2006/10/12/527206.aspx 6.?????? P.NET 2.0 緩存技術(shù) (原創(chuàng)) http://www.cnblogs.com/ghd258/archive/2005/11/03/248896.html 7.?????? 頁面輸出緩存 http://www.cnblogs.com/hide0511/archive/2006/10/21/535702.html
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/laolaolai/archive/2010/02/09/5301212.aspx
轉(zhuǎn)載于:https://www.cnblogs.com/wangjisi/archive/2010/05/20/1740235.html
總結(jié)
以上是生活随笔為你收集整理的OutputCache各参数的说明【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个小问题引发的论证思考
- 下一篇: 关于用飞信框架运行net程序-用批处理运