在Windows Phone 7.5的移动版IE9中,使用后退按钮导航会返回一个非常旧的页面版本。

11
我正在建立一个新闻网站,内容动态更新(每天多次)。很多用户在Windows Phone 7.5 IE 9.0 Mobile中报告了这个bug:
1. 用户进入新闻网站首页并查看页面的最新版本。 2. 用户点击文章链接,跳转到文章页面。 3. 用户点击浏览器的后退按钮。
期望结果:点击后退按钮后,用户看到的是与她在跳转到文章页面之前看到的完全相同的前台页面内容。
实际结果:用户看到的是非常旧(一周左右)的前台页面版本。
还有其他用户见过在移动版IE 9上出现这个bug吗?如何防止发生这种情况?
更多细节: - 服务器响应包含头信息Cache-Control:max-age=60。我想保持这样的设置,不能禁用浏览器缓存。 - 响应头或HTML meta标签中没有其他缓存相关的指令。 - 一些用户表示这个问题也会出现在其他网站上。 - 根据微软的这篇博文(http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx),即使缓存的页面不新鲜,按下后退按钮也不应该从服务器检索页面。对我来说完全没问题,但如果缓存的页面已过期一周,那就不好了。 - 当用户第一次进入我们的网站时,他们看到的是页面的新鲜版本。似乎有些东西会阻止IE缓存该页面,因此后退按钮会返回一些非常旧的缓存版本。

我编辑了你的标签,去掉了旧的 Window Mobile(它没有Mobile IE9),并添加了新的 Windows Phone 7 - user153923
我曾希望Windows手机本身已经有了答案,但没有运气。我在StackOverflow上也遇到了这个问题:( 你解决了这个问题吗?还是与手机无关,而是与页面相关? - Silvermind
3个回答

0

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

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

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

如果再次导航回,请按照相同的过程进行操作,否则在列表中进行记录。 当用户关闭应用程序时,请处理列表条目。 希望您有一些想法。


0
这很可能是浏览器缓存问题。我看到过几个站点出现这种情况,以及在第一次访问同一站点时,旧版本的页面弹出,然后加载页面。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接