传递给 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.pushState
的stateObj
是什么,它有什么作用?
例如,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? [复制]
HTML5历史状态管理history API-pushState/replaceState与popstate事件