History API 是实现 SPA 前进/后退体验的核心技术,含 pushState(添加记录)、replaceState(替换当前记录)及 popstate 事件监听,要求同源、state 可序列化且大小受限,刷新后需手动恢复状态。

JavaScript 中的历史记录 API(History API)是一组用于操作浏览器会话历史的接口,允许你在不刷新页面的前提下修改 URL、添加新记录或跳转到已有状态,是实现单页应用(SPA)中“前进/后退”体验的核心技术。
history.pushState():添加新历史记录
它向浏览器历史栈中插入一条新记录,同时更新地址栏 URL(但不触发页面加载),常用于路由切换时保留用户浏览痕迹。
- 语法:
history.pushState(state, title, url) -
state:一个可序列化的对象,随该记录一起保存,后续通过
popstate事件获取 -
title:目前大多数浏览器忽略该参数,传空字符串
""即可 -
url:相对路径或绝对路径,必须同源,否则抛错;例如
"./user/123"或"/search?q=js"
示例:history.pushState({page: "user", id: 123}, "", "/user/123");
history.replaceState():替换当前历史记录
与 pushState 类似,但它不新增记录,而是直接替换当前历史项。适合更新 URL 但不想让用户多按一次“后退”才能离开当前页的场景,比如表单筛选条件变化时更新地址栏。
立即学习“Java免费学习笔记(深入)”;
标签: javascript java js go seo 浏览器 栈 路由 win 跨域
还木有评论哦,快来抢沙发吧~