【问题标题】:How to clear/expire browser cache on log off?如何在注销时清除/过期浏览器缓存?
【发布时间】:2010-11-02 18:59:38
【问题描述】:
在我的 ASP.net MVC 应用程序中,我有几个要设置为保存在浏览器缓存中的视图。我已经建立了执行此操作的方法,但这是我的问题。
我网站中的菜单在登录和注销访问者之间是不同的。如果登录页面被缓存,那么即使用户注销菜单仍保持登录模式。实际上不是,但在访问者的浏览器上却是。
如何清除/过期缓存,以便访问者的浏览器在我需要时更新,但仍然能够使用浏览器缓存?
提前致谢!
【问题讨论】:
标签:
asp.net-mvc
browser
caching
【解决方案1】:
对于 HTML 页面,这很困难。出于同样的原因,我关闭了客户端缓存,并尝试使服务器缓存尽可能高效。我现在使用 OutputCache 并将 VaryByCustom 设置为登录状态。
我们在该系统上运行了一些负载测试,唯一的瓶颈是它产生的带宽。
附带说明:我使用甜甜圈缓存作为登录状态。但我无法让它与动态压缩一起工作(以减少上面提到的带宽瓶颈)
另见this question
【解决方案2】:
您可以在您的操作方法上使用 AutoRefresh 属性。以下是一些示例:
[AutoRefresh(ControllerName = "Home", ActionName = "About", DurationInSeconds = 10)]
public ActionResult Index1()
{
}
AutoRefresh(ActionName = "About", DurationInSeconds = 15)]
public ActionResult Index2()
{
}
[AutoRefresh(RouteName = "ByFavoriteRoute", DurationInSeconds = 30)]
public ActionResult Index3()
{
}
[AutoRefresh(DurationInSeconds = 45)]
public ActionResult Index4()
{
}