JS怎么判断页面是从前一个页面后退回来的
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JS怎么判断页面是从前一个页面后退回来的?
在做前端页面开发时,我们有时候需要判断当前页面是否是从某个页面后退回来的,比如一个很常见的应用场景:
1.进入到一个列表页面。
2.点击列表页面的一个链接去到管理页面。
3.在管理页面修改列表数据的名称,或删除了列表数据的某一条或多条数据。
4.从管理页面点击浏览器后退按钮,回到列表页面。
5.列表如果有显示在管理页面修改名称的数据,或有删除掉的数据时,如果是后退回来的,这些数据是不会变化的,改过名称的,还会显示原来的名称;删除掉的数据,还会显示在当前页面。
6.如果是重新刷新页面,是不会存在上面的问题的。
如何解决上面的问题?
如果你可以通过JS来判断页面是从前一个页面后退回来的,则可以用JS来通过AJAX请求来更新页面的内容,或者强制刷新当前页面。
解决办法:
可以通过浏览器的performance对象来得到进入到该页面是否是后退回来的。window.performance.navigation.type
这个对象的type有三个值:
=1时,表示当前页面是通过刷新页面加载的。
=2时,表示当前页面是通过浏览器后退按钮,或者history.go(-1)加载的。
=0时,表示是当前页面是正常加载的,比如点击链接进入的。
具体的逻辑可以参考下面的代码图片。