javascript - 如何使用 JS History API pushState 处理刷新页面

标签 javascript html history pushstate

我正在创建的一个小型网站(更像是摆弄)使用 AJAX 来加载每个页面。以前我改变了 url 的散列,这很好用但很丑,用户可以刷新页面,它会停留在同一页面上。

现在我已经切换到在 JS History API 中使用 pushState,这看起来好多了,前后工作,但刷新没有。例如:

转到:http://example.com/page2 转到 404,因为没有真正的页面称为第 2 页。但是如果我单击使用 pushState 方法更改的按钮url,它可以正常工作。

如何使用新的 History API 允许刷新和永久链接?

(以及搜索引擎如何处理这个问题,鉴于 Google 必须创建一种索引哈希 url 的方法,通过让开发人员切换到 #!,他们是否可能会做类似的事情 future 的历史 API?)

最佳答案

您根本不应该使用 pushState 来推送无效的 URL。它旨在用于网站在使用和不使用 AJAX 的情况下都可以工作的情况 - 即,当您使用 AJAX 创建此输出时,您推送 URL 将在没有 AJAX 的情况下产生相同的输出。

如果您只需要虚拟 URL(例如在 pushState 之前的时代),请继续使用 hash 标签。

关于javascript - 如何使用 JS History API pushState 处理刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942350/

相关文章:

java - 哪些 Java 特性在历史上开始是一种模式,现在是一种语言特性?

javascript - 如何在进行密集计算时保持动画 gif 运行

javascript - Ricoh Theta S - 在 javascript 中实时预览

javascript - 主题行邮件中的 Mailto 链接无法使用 JavaScript 工作

iphone - 在 Iphone SDK 中更改网页 View 的字体大小

javascript - firefox 和 javascript 重定向

javascript - javascript d3 和 dc 的概率密度函数

jquery - 悬停在背景上时用图像替换光标 1

html - Swift 解析 html 表

c++ - 为什么 C++ 向后兼容 C ?为什么没有一些 "pure"C++ 语言?