【问题标题】:IE7 Back Button loses history in .NET applicationIE7 后退按钮在 .NET 应用程序中丢失历史记录
【发布时间】:2010-11-11 20:31:03
【问题描述】:

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

现在了解一些细节:

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

我已经完成了必要的 Google 搜索并获得了一些点击,但他们大多说“IE 就是这样”或“使用像 Firefox 这样的真实浏览器”,这两者都没有帮助。有人能解释一下这个问题吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      但是,您的 Ajax 库是否真的为浏览器的历史做出了贡献?大多数 Ajax 库都有处理这个问题的方法。 jQuery 有一个历史插件,微软的 Ajax 有一个历史控件..

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 感谢您的回复。我们已移除 NoCache,但问题仍然存在。
        猜你喜欢
        • 2015-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2015-05-18
        • 1970-01-01
        相关资源
        最近更新 更多