0

有什么方法可以更改 URL 或向“后退按钮”添加更多历史记录,而无需刷新整个页面?

我的应用程序是基于 AJAX 的,我想在历史记录中添加一些“撤消”事件,以便用户可以简单地回击并保留旧值。

今天有什么可能?我听说其中一些可能在 HTML5 中,但尚未检查当前浏览器支持的内容。

4

4 回答 4

2

我认为您可以使用window.location.hash来跟踪#part页面,在您的情况下,#state1等等#state2

window.location.hash = '#state' + (++ stateN)设置和 stateN = parseInt(window.location.hash.match(/\d+$/)[0])

请参阅On -window.location.hash - 更改?有关如何检测位置哈希更改的更多详细信息。

于 2010-08-28T16:28:25.673 回答
0

您可以使用301 重定向。就个人而言,我会在客户端使用 cookie,或者在后端使用会话来存储面包屑。在 URL 中存储状态信息对于 AJAX 应用程序来说是个坏主意,因为人们可能会返回到服务器端没有处于正确状态来响应的 url。

另一种选择是提供您自己的后退按钮,该按钮知道要返回到哪个页面。

于 2010-08-28T16:31:17.390 回答
0

这个问题的答案与我对这些问题的答案或多或少相同:

总而言之,您可能想要查看的两个项目解释了整个 hashchange 过程并将其与 ajax 一起使用:

  • jQuery 历史(使用哈希来管理您的页面状态并绑定到更改以更新您的页面)。

  • jQuery Ajaxy(jQuery History 的 ajax 扩展,允许完整的 ajax 网站,同时完全不显眼并且可以优雅地降解)。

于 2010-08-28T16:54:32.970 回答
0

可以使用 ASP.NET 的内置脚本管理器来更新浏览器的历史记录。完整的操作方法位于此处:

http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history

于 2010-10-05T01:44:05.413 回答