后退按钮不是在ajax站点上重新加载页面

Back button isn't reloading page on ajax site

本文关键字:新加载 加载 按钮 站点 ajax      更新时间:2023-09-26

我在客户端站点中添加了AJAX,以启用一些简单的页面过渡动画。因此,如果我们导航到他的主页(与js启用)在firedogcreative.com,然后导航到他的编辑页面,然后到他的工作页面之一;我们最终得到的历史记录是这样的:

firedogcreative.com --> firedogcreative.com/#edit --> firedogcreative.com/#example1

Ajax负责加载每个页面的内容,它在每种情况下更新URL栏中的哈希值,并且所有工作都完全按照计划进行。

当用户点击后退按钮时,我不确定我理解发生了什么。如果他们在#example1,点击浏览器的后退按钮,URL栏更新到firedogcreative.com/#edit,但页面内容不变。如果用户重新加载页面,但是,它正确地重新加载到#edit

我试着添加这个,我认为这会导致页面不缓存,因此每个返回按钮调用会重新加载页面,但它似乎没有效果:

window.onbeforeunload = function () {
   // stuff do do before the window is unloaded here.
};

如果这有效,它将是一个可以通过的解决方案。只有当用户使用前进/后退按钮时,页面才会真正重新加载,这是可以的。

我的问题是,后退按钮是怎么回事?不应该onbeforeunload导致后退按钮重新加载基于存储的URL?

我的问题是,后退按钮是怎么回事?

返回到前一个URL。

由于更改片段标识符以跟踪应用程序状态是一种攻击,因此不会发生其他任何事情。

onbeforeunload不应该导致backbutton根据存储的URL重新加载吗?

。你在同一个文档中导航回来,所以它没有被卸载。

你需要监控hashchange事件,并用你自己的JS改变应用状态。

或者,切换到使用pushState并观察popstate事件