关于颗粒度更细小的缓存-“部分视图缓存”
2018-06-22 06:13:37来源:未知 阅读 ()
引言
之前学习了一点关于缓存的东西,有控制器缓存、页面缓存,又看到一篇文章是关于部分视图缓存的内容。一下就是我的一些学习总结。
情景
假设有一个页面A,这是一个静态页面除了头条的轮播图需要更新。那么这个时候可以把整个页面缓存,然后轮播图那一块用Html.Partial显示。
首先页面缓存设置为一个小时
然后页面显示输出时间
具体效果如上,在60分钟内刷新时间都是不会改动的。这个时候整个页面就是缓存60分钟。
部分视图缓存
将Index页面的缓存过滤器移除。新增一个Html的拓展项:
public static class CacheExtensions { public static string Cache(this HtmlHelper htmlHelper,string cacheKey,CacheDependency cacheDependencies,DateTime absoluteExpiration,TimeSpan slidingExpiration,Func<object> func) { var cache = htmlHelper.ViewContext.HttpContext.Cache; var content = cache.Get(cacheKey) as string; if (content == null) { content = func().ToString(); //SqlCacheDependency sqldependency = new SqlCacheDependency(); //SqlCacheDependency.CreateOutputCacheDependency("UserCacheDependency:UnionInf")这个就是之前写在webconfig里面的配置数据 var path = System.AppDomain.CurrentDomain.BaseDirectory; cache.Insert(cacheKey, content,new CacheDependency(path+"/Exam/Name.txt") , absoluteExpiration, slidingExpiration); } return content; } }
现在是依赖与当前目录下的Name.txt文件,即如果文件被改动缓存就会失效。如果要用Sql依赖则可以使用上述备注的内容。
然后页面代码修改如下:
最终的效果如下:
原文链接:http://www.cnblogs.com/JeffreyZhao/archive/2009/09/17/aspnet-mvc-fragment-cache-1.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- .net实现压缩功能的方法 2019-10-08
- asp.net如何读取配置文件 2019-09-17
- 关于FileStreaReder和StreamReader的介绍 2019-08-26
- 关于ASP.NET 前后台调用 2019-08-09
- 关于ASP.net路径问题 2019-08-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash