11

我正在建立一个动态内容的新闻网站,该内容经常更新(每天多次)。用户数在 Windows Phone 7.5 IE 9.0 Mobile 中报告了此错误:

  1. 用户导航到新闻网站首页并看到页面的最新版本
  2. 用户单击文章的链接并导航到文章页面
  3. 用户单击浏览器的后退按钮

预期结果:

单击后退按钮后,用户会看到首页,正是她在导航到文章页面之前看到的内容。

实际结果:

用户看到一个非常旧的(一周左右)版本的首页。

有没有其他人在 Mobile Internet Explorer 9 中看到过这个 bug?我怎样才能防止这种情况发生?

更多细节:

  • 服务器响应包含标头 Cache-Control:max-age=60。我想保持这种状态。禁用浏览器缓存不是一种选择。
  • 响应标头或 HTML 元标记中没有其他与缓存相关的指令。
  • 一些用户说这个问题也发生在其他网站上
  • 根据 MS 的这篇博文(http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx)按下后退按钮不应该从服务器检索页面,即使缓存的页面不是新鲜的。这对我来说完全没问题,但如果缓存的页面是一周前的,那就不行了。
  • 当用户第一次导航到我们的网站时,他们会看到页面的新版本。似乎某些东西阻止了 IE 缓存该页面,因此后退按钮返回一些非常旧的缓存版本。
4

3 回答 3

0

这很可能是浏览器的缓存问题。我已经看到这发生在几个站点上,并且在首次访问相同站点时在页面加载之前看到旧版本的页面弹出。

于 2013-06-20T04:48:34.987 回答
0

这是一个已知问题,直到 MS 推出具有一些增强功能的 IE 10 之前,这将存在。如果您找到了解决方案,那很好,但如果没有,我可以给您一个想法。

让我们考虑解决方案部分。当用户浏览页面时,您可以创建一个动态列表,例如 List<String> UrlVisitpages = new List<String>(); 现在在运行时您将初始化此列表并填写用户正在导航的 uri。然后当用户导航回来

OnBackKeyPress()你处理事件。说handle = true;并在浏览器中加载 UrlVisitPages 的最后一个 uri 作为WebBrowser.Show("YourLastUriIndex");方法。并从列表中删除最后一个索引,否则它将是一个重复的条目。

如果他再次导航回来,请遵循相同的程序,否则在列表中输入一个条目。当用户关闭应用程序时 Dispose List 条目。希望你有一些想法。

于 2013-09-19T11:24:15.507 回答
0

无法帮助解决问题的原因。但是我会使用JQuery 地址插件通过编程使用后退按钮来摆脱这种情况。

于 2013-06-20T05:03:06.777 回答