我正在创建的一个小型网站(更像是摆弄)使用 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/