缓存:
缓存指令必须要有的属性是:Duration、VaryByParam
1、整页缓存:
整页进行缓存,设置缓存的时间(Duration 单位为秒),VaryByParam设置为none
2、根据参数缓存内容:
根据参数值不同进行缓存,主要设置VaryByParam,会根据参数值不同建立缓存
3、根据标头信息改变缓存内容:
根据头信息不同进行缓存,主要设置VaryByHeader,可以将值设置为user-Agent(效果:浏览器不同缓存的副本就会不同)
4、自定义字符串改变缓存内容
先设置VaryByCustom,在全局文件中重写GetVaryByCustomString方法,
如果该方法返回的内容一样,获取的缓存数据就一样,
如果返回的内容不一样,获取的缓存数据就不一样
5、用户控件实现局部缓存
先创建用户控件,在用户控件中设置缓存
然后指定页面添加用户控件,该指定页面不需要设置缓存
6、缓存后替换
先设置页面的整页缓存
然后添加Substitution控件
给该控件的MethodName设置一个静态方法(该方法返回是一个字符串,参数类型是Httpcontext)
7、应用程序缓存
不需要在页面添加OutputCache缓存指令,
是通过代码对Cache进行操作
8、文件缓存依赖
需要设置System.Web.Caching.CacheDependency
缓存数据就会受文件的改变而失效
9、数据库缓存依赖
需要设置System.Web.Caching.SqlCacheDependency
缓存数据会受数据库中表数据的改变而失效
准备工作:
1)先设置配置文件,让项目启用SqlCacheDependency
<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="connStr" connectionString="server=.;database=StuDB;uid=sa;pwd=sasa"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<caching>
<sqlCacheDependency enabled="true" pollTime="6000">
<databases>
<add name="StuDB" connectionStringName="connStr"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>
2)在命令行执行相应命令产生数据库缓存表(注意:直接在VS的命令行工具里面执行)
命令:aspnet_regsql -C "server=.;database=StuDB;uid=sa;pwd=sasa" -ed -et -t "StuInfo"
其中 -C代表数据库连接字符串 -ed代表允许数据库使用缓存功能 -et代表允许数据库表使用缓存功能 -t后面接使用数据库缓存的表名
转载于:https://www.cnblogs.com/wang1820feng/p/4685823.html