7

History API使得在浏览器历史中存储状态对象成为可能。现在试试这个演示(但它与任何其他的行为相同,选择你最喜欢的:)):

  1. 单击一些链接以建立一些历史
  2. 清除您的浏览器历史记录(完整或仅针对此站点)
  3. 你仍然可以穿越历史

我预计清除历史会产生影响,但事实并非如此......
有人可以解释这种行为吗?

4

2 回答 2

1

好吧,看来我太关注历史 API 了。我终于尝试做同样的事情(在任何站点上建立历史记录,然后清除历史记录),并且是相同的行为:仍然能够来回移动。
所以我的理解是,清除历史记录并不能真正清除打开选项卡的历史记录:它只是从列表中消失,但在关闭选项卡之前不会从真实历史记录中消失。

于 2012-04-27T06:58:34.660 回答
1

history.pushState ( ) 方法

“状态对象可以是任何可以序列化的对象。因为 Firefox 将状态对象保存到用户的磁盘,以便在用户重新启动浏览器后可以恢复它们,所以我们对状态对象的序列化表示施加了 640k 个字符的大小限制。如果您将序列化表示大于此的状态对象传递给 pushState(),则该方法将抛出异常。如果您需要比这更多的空间,建议您使用 sessionStorage 和/或 localStorage。

参考: https ://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

于 2012-04-25T20:43:50.683 回答