单页面判断页面是不是刷新(谷歌浏览器)

1、场景描述:

第一次向后端发起请求得到数据后存储到sessionstorage或localstorage之中,之后的逻辑是每次需要数据时从sessionstorage或localstorage中去取,取不到的时候(比如关闭页面重新打开或者手动清除缓存)再重新向后端发起请求获取数据。但是这样会存在一个问题,即希望通过刷新页面向后端重新发起请求的时候因为sessionstorage或localstorage的数据仍然存在,所以不会向后端发起请求。

2、解决方案:

在刷新页面的时候使用window.onbeforeunload向sessionstorage或localstorage存入一个标记譬如reloadFlag作为判断是否是刷新的依据,页面刷新后从sessionstorage或localstorage中获取存储的标记,然后执行相应的回调向后端发起请求,完成之后将sessionstorage或localstorage中获取存储的标记删除即可。

// reLoadFlag.js
;(function(){
   	window.onbeforeunload = function(){
   		sessionStorage.setItem('reLoadFlag', 'true');
   	}
})();

// 需要判断的地方进行判断操作
if (sessionStorage.getItem('reLoadFlag') === 'true') {
   // 执行其他的逻辑
   // ...............
   sessionStorage.removeItem('reLoadFlag');
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值