Donut Caching和Donut Hole缓存对我来说不是很清楚。我读了几篇关于这个的文章,那些网址是
https://www.dotnettricks.com/learn/mvc/donut-caching-and-donut-hole-caching-with-aspnet-mvc-4 https://www.c-sharpcorner.com/UploadFile/chinnasrihari/Asp-Net-mvc-framework-donut-donut-hole-caching/ http://dotnet-helpers.com/mvc/donut-caching-with-asp-net-mvc/
1)当人们使用Donut Caching时,他们应该使用[DonutOutputCache(Duration=60)]
代替[OutputCache(Duration=60)]
但是如果有人检查我粘贴的链接,那么必须注意人们使用 OutputCache属性代替DonutOutputCache ,但这个原因并不清楚。
2)如果我需要缓存部分视图,那么我需要使用OutputCache而不是DonutOutputCache,或者OutputCache实际上会在内部使用DonutOutputCache。
3)如果我在客户端提到缓存位置,那么当来自不同PC的另一个客户端访问我的同一缓存页面时会发生什么?我想如果我在客户端维护缓存然后再次访问下一个访问者将发生db trip并缓存数据并存储在客户端......我是对的吗?
抱歉我的英语不好。谢谢 所以请有人澄清以上2点。感谢
答案 0 :(得分:0)
1)Outputcache和ChildActionOnly属性的组合类似于Donut HOLE缓存。甜甜圈的洞没有被重新渲染,它是从缓存中提供的。通过使用ChildActionOnly属性,然后指定OutputCache属性和时间,您要说明在服务器上缓存此部分甜甜圈孔的指定持续时间。它将从缓存中提供的甜甜圈洞。你必须同时使用它们。 请看一个很好的例子:http://www.tugberkugurlu.com/archive/donut-hole-caching-in-asp-net-mvc-by-using-child-actions-and-outputcacheattribute
2)要缓存局部视图输出,我们再次使用OutputCache属性来控制返回部分视图结果的操作方法IN THE CONTROLLER。请参阅http://techfunda.com/howto/275/cache-partial-view-output
3)使用OutputCacheLocation.Client时,输出缓存位于发出请求的浏览器客户端上。第一次请求页面时遇到的每个新访问者都将该页面内容缓存在他们的浏览器中。