UserControl缓存和Page为缓存的区别
作者:admin 时间:2012-11-20 0:19:59 浏览:UserControl缓存和Page缓存的一些区别:
1.作用范围:UserControl为页面局部的缓存,Page为页面全部的缓存
2.优先级:Page缓存优先级高于UserControl
例如:
UserControl :
<%@ OutputCache Duration="60" VaryByParam="ProductType" %>
Page :
<%@ OutputCache Duration="60" VaryByParam=" none" %>
当ProductType =1改变时,Page缓存并不更新(UserControl并不更新)
如果Page去掉 OutputCache命令,则ProductType更新时,Page会更新(Control更新)
3. 页面生命OutPutCahe缓存策略优先于后台代码:
比如
<%@ OutputCache Duration="100" Location="Any" %>
缓存100S
代码:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
缓存100秒
UserControl和Page中各命令参数比较(空 表示不支持)
| 简单介绍 | Control | Page |
Duration | 缓存时间 | 支持 | 支持 |
Location | 存储位置 | | 支持 |
Shared | 多页面共享 | 支持 | |
VaryByParam | 随参数改变 | 支持 | 支持 |
VaryByControl | 随控件改变? | 支持 | |
VaryByHeader | Http协议头 | | 支持 |
VaryByCustom | 自定义改变值 | 支持 | 支持 |
SqlDependency | Sql依赖 | 支持 | 支持 |
CacheProfile | Cache配置节名称 | | 支持 |
NoStore | 是否有其他存储介质 | | 支持 |
asp.net缓存的几种实现方式:
1、使用OutputCache指令缓存
网页使用OutputCache指令缓存,是最常见的asp.net页面缓存的实现方法,在前一篇文章里进行详细的介绍过,参阅《OutputCache缓存优化asp.net代码 提高网页性能》
2、根据不同的语言缓存不同的版本:
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);
这三种实现方式有所不同,可根据具体的需要和实际情况进行使用。
标签: 缓存 UserControl
- 站长推荐