html判断用户是否在刷新,js或vue中 如何判断浏览器时关闭还是刷新??

目前接到一个需求如下:

SpringMVC的项目部署后,接入了客户的统一认证平台(基于token的方式),需要实现一个功能,在浏览器第一次访问系统主页时,需要执行一个ajax后台操作,如果多次打开页签则不执行,刷新也不执行,但是如果关闭所有页签后再次打开第一个时,需要执行,也就是说每次打开该网站主页并且只有一个页签打开时,需要执行一个后台方法。

目前我准备的做法是:使用localstorage记录打开主页的次数,每次打开一个就增加一个,刷新不做处理,如果关闭一个就再减去一个,这样只能再第一次打开时调用后台方法,

但是目前遇到一个问题,就是无法判断浏览器时刷新还是关闭,网上找了一些,也没有找到准确的做法,目前主要能兼容谷歌、火狐、360等浏览器就行

求教各位!

回答

用vuex,当页面第一次加载,或者刷新页面时,vuex里面的会恢复到默认状态

有个东西叫sessionStorage,用法同localStorage。不同的是,浏览器关闭后,localStorage里的东西会保存,sessionStorage里面的就会清除sessionStorage并不能满足我的需求

sessionStorage 标记一个值,localStorage 统计窗口数量。

代码开始运行,sessionStorage 无标记并且 localStorage 统计为零则执行 ajax 。sessionStorage 设置标记,localStorage 统计加一。

关闭或刷新窗口,localStorage 统计减一

回复 @咖啡加糖 : 为什么刷新不能减?要在刷新后 js还没加载出来,用户就把浏览器关闭了,localStorage 统计不就多了吗?你先不要考虑你的做法,用我说的试试。使用到 sessionStorage 、localStorage 和 beforeunload 没什么浏览器兼容问题吧。我这边的需求是刷新不能减,目前就是关闭和刷新这块不好区分,而且涉及到浏览器兼容问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值