【问题标题】:Cache in MVC.NetMVC.Net 中的缓存
【发布时间】:2023-03-05 13:51:01
【问题描述】:

我面临一个问题,从网站注销后,我可以使用浏览器后退按钮查看所有页面,我的理解是如果我在注销时清除所有缓存,那么我可以阻止它,但我担心的是如果我删除所有缓存,那么我的网站性能会变差吗?

也可以只为特定页面设置 nocache 吗?

【问题讨论】:

标签: asp.net asp.net-mvc


【解决方案1】:

是的,您可以在返回视图的控制器操作上使用OutputCache 属性。例如,要防止在视图上缓存,请使用:

[OutputCache(NoStore = true, Duration=1)]

性能会受到影响,因为您告诉浏览器不要缓存,以便它会向您的网站发出另一个请求。但这不一定是一个重大影响,因为您只是将它们重定向到我期望的“会话过期”页面。

【讨论】:

  • 我已经解决了这个问题,我的主要问题是我们有什么可能的方法可以将内容保存在缓存中,但我们不会让用户在退出后使用返回按钮?跨度>
  • 当您说“将内容保存在缓存中”时,我假设您指的是页面上的图像等。这没关系,因为可以在您的配置中指定这些项目的缓存。为了防止 page 本身缓存(以便无法浏览浏览器历史记录),您需要执行与我的回答类似的操作,以指示用户的浏览器不要缓存该 URL。这种技术我已经用过很多次了,效果很好。
  • 是的,你是对的,我的意思是保留图片,所以如果我们只写[OutputCache(Duration=1)],这意味着它不会缓存url,但会缓存图片。是吗?
  • 马克,这很好用,但在 Opera 中不起作用,你知道如何让它在 Opera 中起作用吗?
  • 我不知道任何 Opera 特定的缓存指令。也许旧版本的页面已经被缓存了?尝试 Ctrl+R 重新加载页面或清除浏览器缓存,然后重试。除此之外,我只能建议查看来自网站的响应标头以查看设置的过期时间。
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2016-09-30
  • 1970-01-01
  • 2011-04-23
相关资源
最近更新 更多