history.pushstate和history.replacestate的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了history.pushstate和history.replacestate的区别相关的知识,希望对你有一定的参考价值。
参考技术A 对于不支持H5的浏览器:用location.hash直接修改hash值的方式来代替pushState。
没找到可以用什么方式来代替history.replaceState。
传递给 history.pushState 的状态对象是啥,它有啥作用?
【中文标题】传递给 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.replacestate的区别的主要内容,如果未能解决你的问题,请参考以下文章
前端路由的实现 —— History的pushState和replaceState用法
为 Angular 2 配置 history.pushState
使用 window.history.pushState 函数时无法在“历史”错误上执行“pushState”
使用ajax和history.pushState无刷新改变页面URL