在我的ASP.net MVC应用程序中,我有几个视图,我想设置保存在浏览器的缓存中。我已经有了这样做的方法,但这是我的问题。
我的网站中的菜单在登录和注销访问者之间有所不同。如果登录页面被缓存,那么即使用户注销菜单仍然处于登录模式。实际上并非如此,但在访问者的浏览器上它是。
如何清除/过期该缓存,以便访问者的浏览器在我需要时更新,但仍然可以使用浏览器缓存?
提前致谢!
答案 0 :(得分:3)
对于HTML页面来说,这很困难。我出于同样的原因关闭了客户端缓存,并尝试使服务器缓存尽可能高效。我现在使用OutputCache并将VaryByCustom设置为登录状态。
我们在该系统上运行了一些负载测试,唯一的瓶颈是它产生的带宽。
并且旁注:我使用donut-caching来登录状态。但我无法使用动态压缩(以减少上面提到的带宽瓶颈)
答案 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()
{
}