传递给 history.pushState 的状态对象是啥,它有啥作用?

Posted

技术标签:

【中文标题】传递给 history.pushState 的状态对象是啥,它有啥作用?【英文标题】:what is the state object passed to history.pushState and what does it do?传递给 history.pushState 的状态对象是什么,它有什么作用? 【发布时间】:2011-07-12 03:08:27 【问题描述】:

传递给history.pushStatestateObj 是什么,它有什么作用?

例如,history.pushState(stateObj, title, url);

【问题讨论】:

【参考方案1】:

状态对象as defined by the spec, 是您(作者)想要与该状态关联的任何对象:

页面可以在会话历史记录中的条目和下一个(“前进”)条目之间添加状态对象。然后当用户(或脚本)返回历史记录时,这些将返回给脚本

MDN 有一个更实用(特定于 Firefox)的定义:

状态对象可以是您可以传递给 JSON.stringify 的任何东西。因为 Firefox 将状态对象保存到用户的磁盘,以便在用户重新启动浏览器后可以恢复它们,所以我们对状态对象的 JSON 表示形式施加了 640k 个字符的大小限制。

【讨论】:

以上是关于传递给 history.pushState 的状态对象是啥,它有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

带有 history.pushState 和 popstate 的 Ajax - 当 popstate 状态属性为空时我该怎么办?

如何检测何时使用 history.pushState 和 history.replaceState? [复制]

基于H5 pushState和Ajax完美实现页面局部刷新

HTML5历史状态管理history API-pushState/replaceState与popstate事件

HTML5历史状态管理history API-pushState/replaceState与popstate事件

前端路由实现(history)