/**
* 重写localStorage
*/
function rewriteLocalStorage () {
if (!window.__rewrite__localStorage) {
Object.assign(window, {
__rewrite__localStorage: true,
__localStorage__setItem: localStorage.setItem,
__localStorage__getItem: localStorage.getItem,
__localStorage__removeItem: localStorage.removeItem
})
if (!localStorage.__expires) {
localStorage.__expires = '{}'
}
localStorage.setItem = function (key, value, millisecond) {
if (millisecond) {
let __expires = JSON.parse(localStorage.__expires)
__expires[key] = +Date.now() + millisecond
localStorage.__expires = JSON.stringify(__expires)
}
window.__localStorage__setItem.call(this, key, value)
}
localStorage.getItem = function (key) {
window.clearExpires()
return window.__localStorage__getItem.call(this, key)
}
localStorage.removeItem = function (key) {
let __expires = JSON.parse(localStorage.__expires)
delete __expires[key]
localStorage.__expires = JSON.stringify(__expires)
return window.__localStorage__removeItem.call(this, key)
}
window.clearExpires = function () {
let __expires = JSON.parse(localStorage.__expires)
for (let key in __expires) {
if (__expires[key] < Date.now()) {
localStorage.removeItem(key)
}
}
}
}
}
// 调用
// key value 过期时间
localStorage.setItem('onlinePeopleNum', num, 3000)
//设计的数据格式

存的时候单独的存了一个key为__expires用来保存时间
// key 就是 要存的字段名称 value是过期时间
let __expires = {
onlinePeopleNum2: 1603507537005
}
// 使用 localStorage.getItem('onlinePeopleNum') 获取时候,会先找到__expires 然后去遍历里面的值是否过期
window.clearExpires = function () {
let __expires = JSON.parse(localStorage.__expires)
for (let key in __expires) {
if (__expires[key] < Date.now()) {
localStorage.removeItem(key)
}
}
}
152

被折叠的 条评论
为什么被折叠?



