这篇文章给大家介绍如何使用Donut Caching和Donut Hole Caching在ASP.NET MVC应用中缓存页面,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Donut Caching是缓存除了部分内容以外的整个页面的最好的方式,在它出现之前,我们使用“输出缓存”来缓存整个页面。
假设你有一个应用程序中有像“主页”这种页面,它除了用户登录的用户名以外总是给用户呈现相同的或者很少变化的内容。这时你可能需要缓存大部分的内容。加入你使用“输出缓存”并应用一个VaryByParam UserID来做缓存处理,那么整个页面会为每个访问用户生成缓存,但是这当我们有很大量的登陆用户是就不是一个好的缓存方式了。
为了解决这种问题,Donut Caching提出了为所有用户只缓存一份副本,并且包含一小部分动态的内容,这一小部分动态的内容就像甜甜圈上的洞一样。
使用Donut Caching之前,你需要在Visual studio中使用Nuget安装包,一般直接键入命令安装:
install-package MvcDonutCaching
安装完成后,你就可以通过在action或者controller上添加DonutOutputCache标签来控制缓存了,大多数OutputCache的标签都可以在DonutOutputCache中使用。
public class HomeController : Controller
{
[DonutOutputCache(Duration = 60,VaryByParam="username")]
public ActionResult Index(string username)
{
return View();
}
[DonutOutputCache(Duration=60)]
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
Donut Hole Caching和Donut Caching刚好相反,它用来缓存页面中的一小部分。
假设你有一个应用程序,它需要在每个页面里显示产品列表,那么这时以HTML的形式缓存一个产品列表就是很需要的了,Donut Hole Caching就是设计来处理这种情况的啦,ASP.NET MVC可以通过设置ChildActionOnly标签来支持子请求
[ChildActionOnly]
[DonutOutputCache(Duration=60)]
public ActionResult CategoryList()
{
return View(categoryService.GetCategories);
}
关于如何使用Donut Caching和Donut Hole Caching在ASP.NET MVC应用中缓存页面就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。