|
|
|
|
|
UserControl緩存和Page緩存的一些區(qū)別:
1.作用范圍:UserControl為頁面局部的緩存,Page為頁面全部的緩存
2.優(yōu)先級(jí):Page緩存優(yōu)先級(jí)高于UserControl
例如:
UserControl :
<%@ OutputCache Duration="60" VaryByParam="ProductType" %>
Page :
<%@ OutputCache Duration="60" VaryByParam=" none" %>
當(dāng)ProductType =1改變時(shí),Page緩存并不更新(UserControl并不更新)
如果Page去掉 OutputCache命令,則ProductType更新時(shí),Page會(huì)更新(Control更新)
3. 頁面生命OutPutCahe緩存策略優(yōu)先于后臺(tái)代碼:
比如
<%@ OutputCache Duration="100" Location="Any" %>
緩存100S
代碼:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
緩存100秒
UserControl和Page中各命令參數(shù)比較(空 表示不支持)
| 簡單介紹 | Control | Page |
Duration | 緩存時(shí)間 | 支持 | 支持 |
Location | 存儲(chǔ)位置 | | 支持 |
Shared | 多頁面共享 | 支持 | |
VaryByParam | 隨參數(shù)改變 | 支持 | 支持 |
VaryByControl | 隨控件改變? | 支持 | |
VaryByHeader | Http協(xié)議頭 | | 支持 |
VaryByCustom | 自定義改變值 | 支持 | 支持 |
SqlDependency | Sql依賴 | 支持 | 支持 |
CacheProfile | Cache配置節(jié)名稱 | | 支持 |
NoStore | 是否有其他存儲(chǔ)介質(zhì) | | 支持 |
asp.net緩存的幾種實(shí)現(xiàn)方式:
1、使用OutputCache指令緩存
網(wǎng)頁使用OutputCache指令緩存,是最常見的asp.net頁面緩存的實(shí)現(xiàn)方法,在前一篇文章里進(jìn)行詳細(xì)的介紹過,參閱《OutputCache緩存優(yōu)化asp.net代碼 提高網(wǎng)頁性能》
2、根據(jù)不同的語言緩存不同的版本:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByHeaders["Accept-Language"] = true;
3、文檔以來緩存:
Response.AddFileDependency(Server.MapPath(Request.ApplicationPath + "/Web.Config"));
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
這三種實(shí)現(xiàn)方式有所不同,可根據(jù)具體的需要和實(shí)際情況進(jìn)行使用。