ASP.Net缓存总结及分析
2012-06-30 10:48:36 来源:WEB开发网VaryByParam
该属性定义了一个分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与用GET方法属性发送的查询字符串值对应,或与用POST方法发送的参数对应。当将该属性设置为多参数时,对于每个指定的参数,输出缓存都包含一个请求文档的不同版本。可能的值包括“none”、“*”和任何有效的查询字符串或POST参数名称。值得注意的是,在输出缓存ASP.NET页时,该属性是必需的。它对于用户控件也是必需的,除非已经在用户控件的@ OutputCache指令中包含了VaryByControl属性。如果没有包含,则会发生分析器错误。如果不需要使缓存内容随任何指定参数发生变化,则可将该值设为“none”。如果要使输出缓存根据所有参数值发生变化,则将属性设置为“*”。
创建页面输出缓存文件依赖
示例代码:Response.AddFileDependency(MapPath("test.xml"));
如需要建立依赖多文件关系,则使用AddFileDependencies()方法。
使用编程方式设置页面缓存过期
示例代码:HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("~/test.aspx"));
此方法只接受一个"虚拟绝对"路径,因此需用Page.ResolveUrl()方法转换
使用编程方式设置多个页面缓存过期(创建键依赖(key dependency))
示例代码:
缓存页面:PageLoad:
Cache.Insert(“key”,DateTime.Now);
Response.AddCacheItemDependency("key");
通过此法向多个页面添加依赖项
移除依赖项:PageLoad:
Cache.Remove("key");
以编程方式操作页面输出缓存
操作由Response.Cache属性暴露的HttpCachePolicy类对象的方法。
创建页面输出缓存配置
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheProfile1" duration="60" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
2.部分页面缓存
缓存后替换
采用声明方式,使用Substitution控件,设置MethodName属性所需的方法,此方法必须是静态方法,因为当前页输出缓存时,页面实例还没被创建。注:AdRotator内部使用了缓存后替代。
以编程方式设置缓存后替换,使用Response.WriteSubstitution()方法,好处:1,此方法引用的方法不一定是当前类的方法,可以是另一个类的实力或静态方法。2,可以在自定义控件中使用此方法实现缓存后替换。
部分页面缓存:用户控件缓存
给用户控件添加<%@ OutputCache%>指令。此指令包含一个Shared属性,可设置共享用户控件的输出缓存。
以编程方式设置用户控件缓存
当用户控件中包括<%@ OutputCache%>指令时,可以通过用户控件的CachePolicy属性所暴露的ControlCachePolicy类的实例的属性控制修改空间如何缓存。
创建用户控件缓存的文件依赖
可以使用CacheControlPolicy.Dependency属性在一个缓存了的用户控件和文件系统中一个文件间创建一个依赖,示例代码:
PageLoad:
CacheDependency depend=new CacheDependency(MapPath("~/test.xml"));
this.CachePolicy.Dependency=depend;
缓存动态载入的用户控件
可以使用Page.LoadControl()方法载入用户控件,当具有缓存特性的用户控件被载入时,Asp.net Framework自动一个PartialCachingControl类的实例包装用户控件。示例代码:
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
- ››asp获取毫秒数
- ››asp.net报“INSERT INTO 语句的语法错误解决
更多精彩
赞助商链接