js 监听浏览器tab关闭,清除缓存数据。

通常,我们会在浏览器中缓存一些数据。保存用户的部分信息或者一些其他信息。当关闭tab的时候我们希望清除这些数据。
解决:主要是两个方法,onunload,和 onbeforeunload
但是直接关闭浏览器,该方法无法无用(客户端操作无法监听)

    var _beforeUnload_time = 0;
    var _gap_time = 0;

    window.onunload = function() {
      _gap_time = new Date().getTime() - _beforeUnload_time;
		// 页面刷新_gap_time 会较长
      if (_gap_time <= 4) {
        // 清除缓存数据
        storage.clearAll();
      }
    };

    window.onbeforeunload = function() {
      _beforeUnload_time = new Date().getTime();
    };

这里使用的store.js作为缓存解决方案,store-npm
可以设置失效时间,建议使用,很方便。

var engine = require('store/src/store-engine')
var storages = [
    require('store/storages/localStorage'),
    require('store/storages/cookieStorage')
]
var plugins = [
    require('store/plugins/defaults'),
    require('store/plugins/expire')
]
var store = engine.createStore(storages, plugins)
store.set('foo', 'bar', new Date().getTime() + 3000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值