【问题标题】:Page doesn't un-cache itself in ASP.NET C#页面不会在 ASP.NET C# 中取消缓存自身
【发布时间】:2010-04-01 22:48:48
【问题描述】:

有时我发现我需要按 CTRL+REFRESH BUTTON(或简称 REFRESH BUTTON)才能更新页面。 我认为这可能是使用 AJAX 更新面板之类的问题,但它也发生在没有 AJAX 部分呈现的页面上。 我还删除了 if(!isPostBack),但仍然需要刷新页面才能更新内容。

和缓存有关吗?

有人知道解决这个问题的方法吗? 我相信它只发生在 IE 7(我正在使用)上。我在 Chrome 上尝试了相同的功能,它按预期工作。

编辑:不幸的是,这并不像将缓存标头设置为 0 或在 IE 中总是在页面加载时检索最新页面那样简单。我做了这些,同样的问题发生了。

例如,在我网站的某一部分,您可以更改个人资料图片。如果我选择删除个人资料图片(然后应该设置为默认图片),它只会删除图片(但不显示默认图片)。页面再次加载,但它仍然引用我删除的图片(所以我得到图片的 X)。我必须进入另一个页面,然后返回个人资料页面才能看到默认图片。 CTRL + REFRESH 也可以。

请注意,所有浏览器(包括 Chrome)都会出现此特定问题。

如果有帮助,我正在使用母版页中的内容页面。

【问题讨论】:

    标签: c# internet-explorer-7 refresh renderpartial


    【解决方案1】:

    更改浏览器缓存设置将在本地解决问题,但要解决一般情况,请将标头“Expires: 0”添加到出站页面,这将完全阻止浏览器缓存它。

    要在 C# 中执行此操作,请将以下代码添加到页面加载事件:

    Response.AddHeader("Expires", "0");
    

    【讨论】:

      【解决方案2】:

      Ctrl+refresh 强制 IE 从服务器重新加载页面,而不是使用本地缓存的版本。首先,检查您的浏览器设置:设置 - 常规 - 浏览历史记录。 “检查存储页面的较新版本”应设置为“自动”。然后,检查您是否在页面中添加任何“过期”标题。

      【讨论】:

        【解决方案3】:

        你也可以考虑在响应对象上设置缓存策略或者每次将实体标签设置为不同的东西...

        http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-18
          • 2011-08-01
          • 2013-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多