localStorage的时效性

401 阅读1分钟

浏览器的本地存储

localStoragesessionStorage是html5新增加的两种本地存储方式,可以用来存储搜索记录,登录信息等等。localStoragesessionStorage的使用方法一样,而且它们的api简单易用,并且不会随着http请求发送出去,最大的存储空间为5M。sessionStorage是具有时效性的,它会在用户关闭浏览器后就自动清空。但localStorage确不具备时效性,它的数据会永久存储,除非用代码清除或者手动删除,所以我人为封装了一个具有时效性的localStorage轮子,下面是我的代码:

 const set = (key, value) => {
            const curTime = new Date().getTime();  //获取当前时间
            window.localStorage.setItem(key, JSON.stringify({ date: value, timer: curTime }))  //存值,存入key中并转换为json字符串,key自己取名
            const get = (key, exp) => {
                const localData = localStorage.getItem(key);  //获取localStorage
                const localDataObj = JSON.parse(localData); //将获取到的数据转换为json格式
                const nowTime = new Date().getTime();  //获取现在的时间
                //判断是否过期
                if (nowTime - localDataObj.timer > exp) {
                    console.log('数据已过期');
                    // 数据过期并删除
                    localStorage.removeItem(key);
                    return false;
                } else {
                    const data = JSON.parse(localDataObj.data);
                    return data;
                }
            }
        }