ASP.NET 实现页面缓存 页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %> 这样整个页面的内容都会被缓存,页面中的ASP.NET代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。 页面缓存是针对所有这个页面的访问者。这样1个访问者和1万个访问者、一次访问和100万次访问对数据库的压力是一样的。
Duration="60" 的意思是指定缓存的时间为60秒,可根据情况自已设定,超过这个时间则缓存失效,再次生成以后会缓存60秒,如此类推。 VaryByParam="none" 的意思是设定无参数缓存(有参数的缓存下面会讲到) 但是对于一些有参数的页面,比如新闻内容页来讲(比如是针对于访问每个新闻的内容页路径为http://test.com/ViewNews.aspx?id=1,服务器进行页面缓存是无法自动读取id这个参数的值),如果如上设置的话,则只会缓存?id=1的新闻页面,因为?id=2、?id=3只是页面的不同参数而已,为了能缓存各种不同的新闻页面,可以设置VaryByParam="id",表示对于不同的id参数进行单独缓存。如果有多个确定缓存参数,则将参数名用分号隔开即可,比如VaryByParam="id;number"。 如果想让任何不同的查询字符串都创建不同的缓存,则设置VaryByParam="*",一般情况下设置“*”就足够了。 这两个参数是必须的,不能缺省。另外还有一个重要的参数DiskCacheable="true|false" 意思是要不要把缓存放到硬盘上,如果设为false则缓存数据会放到内存中。 这里需要注意一下,如果页面数据很小的话可以把缓存数据放到内存中,如果数据较大最好放到硬盘上,否则会占用大量内存影响服务器运行,如果数据缓存到硬盘上的话,记得要把Duration的值设的大一些如Duration="3600",如果设的太小,服务器会过于频繁的在硬盘上写数据反而会降低性能,如果在内存中缓存数据Duration""则不要设的太长,当然具体时间长短要大家自己多尝试才知道。
MVC 实现页面缓存
如需在 ASP.NET MVC 项目中实现页面缓存,在 Web.config 配置以下节点即可:
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="PostCache" duration="3600" sqlDependency="PostCacheDependency:Posts" varyByParam="*" location="ServerAndClient"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
|
请发表评论