IE7后退按钮在.NET应用程序中丢失历史记录

时间:2009-07-17 21:09:27

标签: .net asp.net internet-explorer-7

在维护ASP.Net应用程序时,我遇到了IE7中Back Button的一个不寻常的问题。选择一些指向aspx页面的链接,然后按一下后退按钮,IE的后退按钮变灰,下拉的快速历史记录不再包含任何条目。这显然是不正确的,因为点击多个链接可以帮助您达到这一点。打开实际历史记录显示完整的跟踪,但由于某种原因,后退按钮无法确定是否有更多页面。

现在了解一些细节:

  • .NET 2.0
  • 安装程序使用具有的主页面 禁用页面缓存 (HttpCacheability.NoCache)
  • 该页面使用Prototype Ajax 库加载动态内容。 历史中的页面不是 依赖于Ajax调用, 他们使用静态URI来加载 具体的信息和 Ajax调用只是加载上下文 信息。换句话说,每一个 历史中的页面有一个实际的 URL,不是Ajax调用的东西 修改
  • Firefox中没有出现问题

我已经完成了必要的谷歌搜索,并提出了几个点击,但他们大多说“这就是IE是如何”或“使用像Firefox这样的真实浏览器”,这两者都没有帮助。任何人都可以对这个问题有所了解吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

但是,您的Ajax库是否真的有助于浏览器的历史记录?大多数Ajax库都有处理这个问题的方法。 jQuery有一个历史插件,微软的Ajax有一个历史控件..

答案 1 :(得分:0)

如果“安装程序使用已禁用页面缓存的主页面(HttpCacheability.NoCache)”,那么这可能就是原因。尝试再次允许缓存,看看是否有效。

答案 2 :(得分:0)

这是Ajax组件,您正在刷新单个页面的一部分。您不是每次都重新加载页面。页面重新加载是来自服务器的另一个完整请求,即使它请求相同的页面,您提交了不同的信息,而后面的代码可能正在使用此数据以不同的方式呈现页面。

当使用Ajax时,您可以控制页面的哪个部分正在重新加载,但这一切都是通过javascript完成的,在某处,不知何故,因此您不会在正常庄园中填充浏览器历史记录。确实,不同的浏览器会以不同的方式处理它。