我一直在开发一个使用 AJAX 和浏览器历史 API 进行导航的网站。
我已经能够让导航为后退/前进按钮正常工作,但是在单击刷新按钮后出现问题。
由于我存储了一个默认状态和页面标题,当 popstate 事件为空时要在其中引用它,因此它会在页面重新加载时被覆盖。
例如,假设我的历史堆栈如下所示:
[索引,第 1 页,第 2 页]
如果我重新加载,在第 2 页上,默认状态变为第 2 页。因此,如果我要导航回来,它最终会这样做:
第 2 页 -> 第 1 页 -> 第 2 页
由于我的弹出式支架处理程序设置为在状态为空时转到默认页面。
我确信其他人已经遇到了这个问题,但我还没有找到任何明确的解决方案。大多数教程都将框架留给后退/前进,从不提及刷新引起的问题。
我不确定对此有什么好的解决方案。有任何想法吗?