有什么办法可以更改网址或将更多历史记录添加到“后退按钮”而无需刷新整个页面?
我的应用程序是基于AJAX的,我想在历史记录中添加一些“撤消”事件,以便用户可以简单地回击并保留旧值。
今天有什么可能?我听说其中一些可能是在HTML5中,但尚未检查当前浏览器支持的内容。
答案 0 :(得分:2)
我认为您可以使用window.location.hash
来跟踪网页的#part
,在您的情况下,#state1
,#state2
等等。
window.location.hash = '#state' + (++ stateN)
设置和
stateN = parseInt(window.location.hash.match(/\d+$/)[0])
有关如何检测位置哈希更改的更多详细信息,请参阅On - window.location.hash - Change?。
答案 1 :(得分:0)
您可以使用301 redirection。就个人而言,我会在客户端使用cookie,或者在后端使用会话来存储面包屑。将状态信息存储在URL中对于AJAX应用程序来说是一个坏主意,因为人们可能会返回到服务器端未处于正确状态以响应的URL。
另一种选择是提供您自己的后退按钮,该按钮知道要返回的页面。
答案 2 :(得分:0)
这个问题的答案或多或少与我对这些问题的答案相同:
总之,您可能希望查看的两个项目解释整个hashchange过程并将其与ajax一起使用:
jQuery History(使用哈希来管理您的网页状态并绑定到更改以更新您的网页)。
jQuery Ajaxy(jQuery历史记录的ajax扩展,允许完整的ajax网站,同时完全不引人注目且可以优雅地降级)。
答案 3 :(得分:0)
可以使用ASP.NET的内置脚本管理器来更新浏览器的历史记录。完整的操作方法如下:
http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history