一道前端编程题

localStorage 本身不存在和有效期相关的 API,那么实现一个带有效期的缓存

阅读 2.5k
3 个回答

devtool.Console

const localStorageWithTime = {
    get: k => {
        const v = localStorage.getItem(k)
        if (! v) return undefined
        const o = JSON.parse(v), l = o?.__life__
        if (! l) return console.error(`localStorageWithTime: "${k}" doesn't have property "__life__".`)
        if (l <= Date.now()) {
            localStorage.removeItem(k)
            return console.log(`localStorageWithTime: "${k}" expired. "__life__" is ${l}.`)
        }
        return o.__data__
    },
    set: (k, v, l) => {
        localStorage.setItem(k, JSON.stringify({ __life__: l, __data__: v }))
    }
}

存储时加上过期日期 获取时如果过期则获取为空且删除

可以参考 cookie 的机制,在存储的时候加上过期事件,可以是相对的也就是绝对的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题