【问题标题】:IE shows a previously cached version of my pageIE 显示我的页面以前缓存的版本
【发布时间】:2011-08-11 02:29:47
【问题描述】:

我的情况是这样的;用户选择他们希望打印的报告列表,一旦他们选择并单击 a 按钮,我将打开另一个页面,其中包含已准备好打印的所选报告。我正在使用会话变量将报告从一个页面传递到另一个页面。

第一次尝试时,它工作正常,第二次尝试时,它会打开包含先前选择的报告的报告窗口。我必须刷新页面以确保它加载了最新的选择。

有没有办法在每次使用会话时从会话中获取最新值?或者有没有更好的方法来解决这个问题。公开征求意见...

谢谢

C# Asp.net、IE&7 /IE 8

【问题讨论】:

  • 这听起来像是我本月早些时候遇到的一个问题,浏览器正在返回缓存页面。在我的例子中,IE 中有一个设置被设置为不自动检查更新的内容。
  • 很遗憾,我无法更改用户浏览器设置。
  • 当第二页打开并将会话变量读入本地对象(我假设您不是直接使用会话)时,您是否会在完成后在第二页上销毁会话变量在这种情况下使用它?我假设您每次在显示第二页之前都将最新的选择重新写入会话,因此当第二页读取并销毁它时它永远不会存在。
  • 是的,我确实为每个新选择重新编写会话...但我无法销毁会话,因为我在刷新页面时需要它,用户也可以打开第二页的多个实例,取决于他在第一页所做的选择.....
  • 我确实想出了一个解决方案。使用 JS,我从第一页开始跟踪第二页。如果第二页已经打开,我刷新页面,否则我打开它。工作正常,但并非一直有效。但这根本不适用于 IE7,仅适用于 IE 8 .....还有其他建议吗?

标签: c# asp.net internet-explorer caching


【解决方案1】:

在做更多检查之后,如果您检查 COMET,它可能会有所帮助。 这个想法是你可以在你的第二个页面中有代码,它将每隔几秒钟检查一次服务器是否有更新的值,如果它找到更新的值,它会自行刷新。

有 2 个很好的链接解释了实现。

第一个链接解释了什么是 COMET 以及它与 ASP.NET 的关系,第二个链接有一个使用聊天室的示例。但是,我确信查询更新的代码将非常通用,并且可以应用于您的场景。

我还没有实现 COMET,所以我不确定它有多复杂,或者它是否易于在您的解决方案中实现。

也许开发 SO 应用程序的人能够为您解决此问题。 SO 对页面上的通知使用了一些实时功能,即:您正在编写答案,并且在您的客户端中弹出一条消息,让您知道其他人已经添加了答案并单击“此处”刷新.

【讨论】:

  • 感谢您的帮助。有限的时间来尝试这个。稍后会研究这个。欢呼
【解决方案2】:

正确的解决方法是正确设置 HTTP 响应上的缓存指令,以便缓存的响应在未经服务器验证的情况下不会被重用。

当您未能指定缓存生命周期时,客户端必须“猜测”响应的有效时间,而浏览器的猜测可能不是您想要的。见http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx

【讨论】:

  • 我在 Page_PreInt 事件中使用了以下代码,仍然没有任何区别。除非我做错了什么codeHttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); HttpContext.Current.Response.Cache.SetNoStore(); Response.Cache.SetExpires(DateTime.Now); Response.Cache.SetValidUntilExpires(true);
【解决方案3】:

最好使用 URL 参数。所以你对参数的值有一个看法。

【讨论】:

  • 虽然 Url 字符串没有最大长度,但浏览器确实对最大字符数有限制。例如,Internet Explorer 不支持超过 2083 个字符的 URL。 2083 个字符可能就足够了,但可能还不够,因为从帖子中不太清楚每个报告在会话中存储了哪些数据。只是要记住的事情。
猜你喜欢
  • 2010-10-25
  • 2020-11-03
  • 2011-02-15
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 2012-01-18
相关资源
最近更新 更多