js 浏览器缓存 手写缓存工具类

浏览器缓存

数据存储在浏览器内存中,不会被页面刷新消失,存储量有大小限制,不过实在开发中,合理的应用已经可以满足绝大缓存需求

  • sessionStorage 会话级别 关闭窗口则自动清除
  • localStorage 永久级别 需手动删除

添加缓存

  • localStorage.setItem(‘key’,‘value’) 保存一个值
  • localStorage.key = value //等同上面

按key查询

  • localStorage.getItem(‘key’) //读取
  • localStorage.key //等同上

查询所有

  • localStorage.valueof() //读取储存的所有数据
  • localStorage.key[0] //读取第一条数据

清除缓存

  • localStorage.removeItem(‘key’) //删除
  • localStorage.clear() 情况所有数据

检查是否存在

  • localStorage.hasOwnProperty(‘key’) //查看是否存在 在:true


封装缓存类

class LocalStorage {
    /**
     * 设置localStorage 内容
     * @author huangzhongfei
     * @date 2021-11-3
     * @param {String} {key} 主键
     * @param {any} {value} 内容
     * @returns {any}
     */
    static set(key, value) {
        if (typeof key !== 'string') {
            throw 'localstorage -- key必须为字符串'
        }
        value = value || ''
        value = typeof value === 'object' ? JSON.stringify(value) : value
        window.localStorage.setItem(key, value);
    }

    /**
     * 根据Key 查询缓存
     * @author huangzhongfei
     * @date 2021-11-3
     * @param {String} {key} 主键
     * @returns {any}
     */
    static get(key) {
        let value = window.localStorage.getItem(key);
        try {
            return JSON.parse(value)
        } catch (err) {
            return value
        }
    }

    /**
     * 根据Key 清除缓存, 可传多个key值
     * @author huangzhongfei
     * @date 2021-11-3
     * @param {any} {key} 主键
     * @returns {Object}
     */
    static remove() {
        const keys = Array.from(arguments);
        for (let i in keys) {
            window.localStorage.removeItem(keys[i]);
        }
    }

    /**
     * 清除所有缓存
     * @author huangzhongfei
     * @date 2021-11-3
     * @returns {undefined}
     */
    static removeAll() {
        window.localStorage.clear();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值