输出缓存的前世今生 ASP.NET 1.0引入输出缓存的概念,这使得开发者可以缓存页面、控件、控制器以及HTTP响应的输出到内存中。在后续的Web请求,ASP.NET就可以使用缓存中的内容更快响应。
ASP.NET的输出缓存系统足够灵活,使得我们可以根据不同的查询字符串或者表单post参数来缓存不同版本的内容。例如test.aspx?category=Vegerable 和 test.aspx?category.aspx?category=Meat。它也允许我们根据浏览器类型或者用户语言偏好来缓存不同版本的内容。比如你可以为应用的手机版本缓存一份数据而为桌面版本缓存另外一份。
我们也可以通过配置ASP.NET来为缓存项设置特定的缓存时间(如1分钟)。我们也可以配置ASP.NET的缓存项根据外部事件动态更新缓存(比如数据库数据更新)。
但是ASP.NET V1到ASP.NET V3.5都只允许内存缓存。
ASP.NET 4输出缓存扩展 ASP.NET 4扩展了输出缓存使得我们可以配置一个或多个输出缓存provider(output cache providers)。输出缓存provider可以使用任意存储机制来持久化输出缓存内容。这使得我们可以把缓存内容存在本地或者远程磁盘、数据库、云端或者分布式缓存引擎中(如memcached或者velocity)。
我们可以通过集成ASP.NET中的System.Web.Caching.OutputCacheProvider类来定制自己的输出缓存provider。然后我们重4个公共方法来实现添加/移除/检索/更新缓存内容(每一个缓存项都必须通过一个唯一的key来标识)。然后我们将这个自定制的输出缓存provider注册到web.config文件中,如下:
在上面,我添加了一个输出缓存provider,名叫SampleCache,它由OutputCacheSample.dll程序集中的ScottOutputCache类实现。我同时也设置了ASP.NET的默认输出缓存provider为SampleCache,即通过上面的defaultProvider。
现在,每当我在一个aspx页面添加下面的指令,页面内容就会通过ScottOutputCache缓存:
<%@ OutputCache Duration="60" VaryByParam="None" %>类似的,如果我给一个action添加[OutputCache]属性,内容页将通过ScottOutputCache缓存:
复制代码 代码如下:
[OutputCache(Duration=60)]
public ActionResult Browse(string category)
{
return View();
}
定制使用哪个输出缓存Provider 上面我只提供了一个默认的SampleCache输出缓存Provider。而开发人员实际上可以根据每个请求动态选择输出缓存Provider的。例如我们可以为首页和Top 10页面使用ASP.NET内置的内存provider(它超级迅速,因为内容存在内存中),而把不常用的请求页面缓存到磁盘。
我们可以通过重载应用的Global.asax的GetOutputCacheProviderName()来实现上面的要求:
复制代码 代码如下:
public class Global: System.Web.HttpApplication
{
public override string GetOutputCacheProviderName(HttpContext context)\
{
if(context.Request.Path.EndsWith("Home.aspx")
{
return "AspNetInternalProvider";
}
else
{
return base.GetOutputCacheProviderName(context);
}
}
}
这样我们单独为Home.aspx页面使用ASP.NET的内存缓存provider,而其他请求使用web.config中配置的缓存provider。
相关推荐:
SEO是如何推动企业增长的关键力量,深圳罗湖网站建设设计
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
AI免费写作一键生成,效率与创意的完美结合
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
seo种草什么意思,seo yoo na ,三维地震反演AI
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
亚马逊站内seo是什么优化,亚马逊seo关键词优化软件 ,ai画卡通章鱼
seo用什么手法,seo方式 ,ai绘画飞翔
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
ChatGPT不能加载过去的对话,如何提升你的使用体验?,ai智能衣服
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
ChatGPT打不开网页?看完这篇你就懂了!,国内ai写作安卓软件
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
软件AI的全称:人工智能驱动未来的关键力量
SEO希望:如何通过SEO优化实现网站突破,迈向成功之路,品牌网站推广软件
智能AI写作生成:如何借助人工智能提升创作效率与质量
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
亚马逊产品seo什么意思,亚马逊平台产品专业术语 ,小新同学ai
云推SEO:让您的网站在激烈竞争中脱颖而出,网站优化公司欢迎来电
SEO大量优化:如何通过精准策略提升网站流量,突破搜索引擎排名瓶颈,吕梁本地网站推广平台
SEO北京:数字时代,企业成功的关键,湖南网站建设湖南岚鸿
SEO化学物质:如何在化工行业提升搜索引擎排名和品牌曝光,rack ai
AI优化文章:如何利用人工智能提升写作效率和质量
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
ChatGPT崩了?用户称打开是一片空白,背后隐藏了什么?,ai 新技巧
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
用AI创作的文章算原创吗?深度背后的逻辑与意义
智能AI写文章:高效创作新风尚
SEO合作:让你的网站在搜索引擎中脱颖而出,惠州抖音seo策划公司
SEO量:提升网站流量和排名的关键法则,德兴seo
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
seo系列什么意思,seo的分类 ,que n ai je
SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做
seo菲律宾是做什么,菲律宾网址排名 ,openl ai
未来写作新模式文章撰写AI如何助力内容创作
seo词库优化,搜索词条优化 ,ai点选择
seo营销方法是什么,seo营销模式 ,ai山海
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
SEO查:如何用精准的SEO诊断助力网站流量爆发,美团关键词排名怎么补
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
SEO自己:打造属于你的数字营销利器,微信裂变营销推广软件
AI自动生成:开启智能时代的无限可能,ai熊熊图片
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
seo算是什么营销方式,seo是网络营销吗 ,ai318
用AI征文工具,轻松创作出精彩文章!
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家