zoukankan      html  css  js  c++  java
  • javascript之localStorage设置数据实效性

    封装函数实现localStorage存储数据实现数据具有实效性

    1、设置localStorage数据时设置当前时间戳

            /**
             * 设置localStorage数据实效性
            */
            setLocalStorage: function(key, value) {
                const curTime = new Date().getTime();
                localStorage.setItem(key, JSON.stringify({ data: value, time: curTime }));
            },    

    2、获取localStorage数据时判断是否过期

            /**
             * 判断localStorage数据是否过期,过期删除,未过期正常返回 localStorage数据
            */
            getLocalStorage: function(key, exp) {
                const localData = localStorage.getItem(key);
                const localDataObj = JSON.parse(localData);
                const nowTime = new Date().getTime();
                if (nowTime - localDataObj.time > exp) {
                    console.log("数据已过期");
                    // 删除localStorage已过期数据
                    localStorage.removeItem(key);
                    return 'localStorage数据已过期';
                } else {
                    const data = JSON.parse(localDataObj.data);
                    return data;
                }
            },

    3、应用

            let val = '{"name":"setLocalValue"}';
            this.setLocalStorage('info', val);
            setTimeout(()=> {//未过期localStorage
                console.log(this.getLocalStorage("info",1000));//输出 {name: "setLocalValue"}
            },900)
            this.setLocalStorage('info', val);
            setTimeout(()=> {//过期localStorage
                console.log(this.getLocalStorage("info",1000));//localStorage数据已过期
            },2000)
  • 相关阅读:
    微信Jssdk 认证签名
    枚举的变换
    mysql 事务
    Java中的堆和栈
    mysql-索引
    mysql-事务隔离 为什么你改了我还看不见
    mysql 一次更新语句是如何执行的
    mysql-一条sql的执行过程
    随笔
    设计模式之装饰者
  • 原文地址:https://www.cnblogs.com/emilyzz/p/14237121.html
Copyright © 2011-2022 走看看