博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# - 缓存OutputCache(一)基础配置
阅读量:5867 次
发布时间:2019-06-19

本文共 2677 字,大约阅读时间需要 8 分钟。

本文是通过网上&个人总结的

 

1. 介绍

OutputCache输出缓存是复制ASP.NET页面,保存在内存的机制。这种行为有助于提高性能,通过返回的缓存达到网页及时响应的目的,减少客户机器需要对页面的渲染。如果一个页面需要很多的时间来渲染,缓存可以显著提高性能。尽管如此,OutputCache也有很大的缺点,如果你的网站需要为用户穷自定义的页面或信息,你不能用到缓存页面来达到你的效果。但是OutputCache支持配置选项,避免了这个缺点,它的配置也是非常强大的。

 

2. 配置地方

1)OutputCache可以配置在webconfig,作为全局的配置。也可以配置在Controller、Action上。

webconfig配置:

Controller、Action:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MVCFilter.Controllers{    [OutputCache(Duration = 20, VaryByParam = "*")]    public class DefaultController : Controller    {//[OutputCache(Duration = 20, VaryByParam = "*")]        public ActionResult Index(string id)        {            return this.Json(DateTime.Now.ToString("T"),JsonRequestBehavior.AllowGet);        }     }}

 

3.详细配置

<%@ OutputCache Duration="#ofseconds"   Location="Any | Client | Downstream | Server | None |      ServerAndClient "   Shared="True | False"   VaryByControl="controlname"   VaryByCustom="browser | customstring"   VaryByHeader="headers"   VaryByParam="parametername"    VaryByContentEncoding="encodings"   CacheProfile="cache profile name | ''"   NoStore="true | false"   SqlDependency="database/table name pair | CommandNotification"   ProviderName="Provider Name"  %>
配置参数 说明
Duration 必填值。
代表页面缓存的秒数。设置这个属性,page或user control建立一个过期策略的HTTP响应对象,并会自动缓存page或user control的输出。
Location 枚举的值,默认值为Any。
注意:不支持.aspx文件。
Shared user control分享到不同的页面。默认是false。
注意:不支持.aspx文件。
VaryByControl 一个以分号分隔的列表字符串用于不同用户控制的输出缓存。
VaryByCustom 如果值=broswer,则缓存的是浏览器不同的名称和版本信息。如果是自定义的字符串,你要重写方法。
VaryByHeader 基于指定的标头中的变动改变缓存条目。
一个以分号分隔的列表用于不同的HTTP头的输出缓存。当这个属性被设置为多个标题,输出缓存包含一个不同请求文档的版本、headers。
设置VaryByHeader属性是允许在所有HTTP 1.1中缓存,不只是ASP.NET。
此属性不支持user controls。
VaryByParam Request 中变量的名称,这些变量名应该产生单独的缓存条目。"none" 表示没有变动。"*" 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 ";" 进行分隔。
VaryByContentEncoding 一个以分号分隔的列表字符串用于不同输出缓存。VaryByContentEncodings属性使用theAccept-Encoding头来确定缓存的响应是不同的内容编码服务。关于如何指定接受编码标头的更多信息,参见14.3节的超文本传输协议(HTTP / 1.1规范在W3C网站上。
CacheProfile 缓存设置的名称与该页面。这是一个可选属性,默认为空字符串(" ")。
NoStore 一个布尔值来决定是否要防止敏感信息的二级存储。
SqlDependency 一个字符串值,用来识别一组数据库和表名对一个页面或控制的输出缓存依赖。注意theSqlCacheDependency类监控表在输出缓存依赖于一个数据库,这样,当更新表中的物品,这些物品是使用基于轮询时从缓存中删除。当使用通知(Microsoft SQL Server 2005)CommandNotification价值,最终SqlDependency类用于注册查询通知与SQL Server 2005服务器。
ProviderName 一个字符串值,表明所使用的自定义输出缓存提供程序。有关更多信息,请参见这个话题和条目的备注部分可扩展与ASP.NET 4(VS 2010和。Scott Guthrie的博客上净4.0系列)
   

 

可以继续查看我的文章

 

可以关注本人的公众号,多年经验的原创文章共享给大家。

posted on
2017-01-06 11:46 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/alunchen/p/6255738.html

你可能感兴趣的文章
C#基础知识整理:基础知识(15) ICollection、迭代及泛型
查看>>
第二章:Shiro入门——深入浅出学Shiro细粒度权限开发框架
查看>>
Vue.js心得
查看>>
jupyter学习
查看>>
LINUX初学之文本编辑器(vi ,vim)
查看>>
获取Android设备基本信息 TelephonyManager
查看>>
Fusion-io 和 VSAN 入门
查看>>
Ubuntu 时间同步配置备忘
查看>>
Oracle flashback闪回专题
查看>>
造轮子,为什么鄙视造轮子,我赞成造轮子!
查看>>
oracle报错pls-00103,在使用begin-end块的时候(动态SQL)
查看>>
Oracle chr() ascii()
查看>>
linux下tar.gz、tar、bz2、zip等解压缩、压缩命令
查看>>
VBS 调试
查看>>
4、设计模式循序渐进-结构型模式
查看>>
KDE 开发入门指导(KDE Development – A Beginner's Guide)
查看>>
欧洲新闻媒体与谷歌的冲突
查看>>
Android平台下使用Ksoap2调用传递复杂对象
查看>>
kindeditor 上传文件控件优化下。。
查看>>
一篇读懂深度学习中「训练」和「推断」的区别
查看>>