【发布时间】:2012-03-30 17:57:52
【问题描述】:
History API 使得在浏览器历史记录中存储状态对象成为可能。现在试试this demo(但它与其他任何行为都是相同的,选择你最喜欢的:)):
- 点击一些链接来建立一些历史
- 清除您的浏览器历史记录(完整或仅针对此站点)
- 你仍然可以穿越历史
我预计清除历史记录会产生影响,但事实并非如此......
有人可以解释这种行为吗?
【问题讨论】:
标签: html5-history
History API 使得在浏览器历史记录中存储状态对象成为可能。现在试试this demo(但它与其他任何行为都是相同的,选择你最喜欢的:)):
我预计清除历史记录会产生影响,但事实并非如此......
有人可以解释这种行为吗?
【问题讨论】:
标签: html5-history
history.pushState() 方法
“状态对象可以是任何可以序列化的对象。因为 Firefox 将状态对象保存到用户的磁盘中,以便用户重新启动浏览器后可以恢复它们,所以我们对序列化表示的state 对象。如果您将序列化表示大于 this 的 state 对象传递给 pushState(),该方法将抛出异常。如果您需要比这更多的空间,建议您使用 sessionStorage 和/或 localStorage。"
参考: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
【讨论】:
好吧,看来我过于关注历史 API。我终于尝试做同样的事情(在任何网站上建立历史记录,然后清除历史记录),而且行为相同:仍然可以来回移动。
所以我的理解是,清除历史记录并不能真正清除打开标签的历史记录:它只是从列表中消失,但在关闭标签之前不会从真实历史记录中消失。
【讨论】: