Asp.Net 网站性能优化 缓字决 Asp.Net 内置的输出缓存介绍
Asp.Net 中有两类缓存方式一种是对页面或者控件的输出内容缓存,一种是对数据的缓存;我们先来看看输出缓存。
输出缓存通常在页面或UserControl上做指令声明,如下示例:
1 | <%@ OutputCache Duration="1000" Location="Any" VaryByParam="id" %> |
在页面上声明的OutputCache指令是由OutputCacheModule处理的,OutputCacheModule配置在.Net framework的web.config文件中
1 | < add name="OutputCache" type="System.Web.Caching.OutputCacheModule"/> |
下面简单写下OutputCache指令属性在页面上的使用:
1. Duration这个值是必填值,以秒为单位指定缓存的失效时间
2. Location的值用来指定缓存数据的存放位置,其默认值为Any,Any表示可以存在在服务器端,客户端,或者代理服务器上;
3. NoStore设置为true表示通过http头通知浏览器不要存储页面
4. VaryByCustom表示自定义的缓存值是否改变,可以指定其值为browser,使不同浏览器使用不同的缓存版本,也可以指定自定义的缓存值,当指定值定义值时必须在Global文件中重写GetVaryByCustomString方法
5. VaryByHeader指定缓存版本随指定的http请求头的值变化
假如我们需要根据浏览器的不同输出不同的缓存版本我们可以这样指定OutputCache指令
1 | <%@ OutputCache Duration="10" VaryByHeader="User-Agent" VaryByParam="None" %> |
你可以在页面上输出下面内容,用ie和firefox分别访问页面,观察缓存变化情况
1 | < p > <%=Request.UserAgent + " request at " + DateTime.Now%></ p > |
6. VaryByControl用来指定页面缓存需要根据控件的值的变化做变化
7. 最常用的VaryByParam用来指定是否根据或根据什么查询字符串的值做变化
在.Net 4.0中为我们提供了扩展OutputCache的接口,具体请看Asp.Net 4.0 新特性之 使用自定义OutputCache Provider.
另外向大家推荐有关客户端浏览器缓存的Http头介绍
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架