如何在注销时清除/过期浏览器缓存?

时间:2009-06-14 04:15:56

标签: asp.net-mvc browser caching

在我的ASP.net MVC应用程序中,我有几个视图,我想设置保存在浏览器的缓存中。我已经有了这样做的方法,但这是我的问题。

我的网站中的菜单在登录和注销访问者之间有所不同。如果登录页面被缓存,那么即使用户注销菜单仍然处于登录模式。实际上并非如此,但在访问者的浏览器上它是。

如何清除/过期该缓存,以便访问者的浏览器在我需要时更新,但仍然可以使用浏览器缓存?

提前致谢!

2 个答案:

答案 0 :(得分:3)

对于HTML页面来说,这很困难。我出于同样的原因关闭了客户端缓存,并尝试使服务器缓存尽可能高效。我现在使用OutputCache并将VaryByCustom设置为登录状态。

我们在该系统上运行了一些负载测试,唯一的瓶颈是它产生的带宽。

并且旁注:我使用donut-caching来登录状态。但我无法使用动态压缩(以减少上面提到的带宽瓶颈)

另见this question

答案 1 :(得分:0)

您可以使用操作方法的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()
{
}