要模拟 localStorage 的过期时间功能,可以使用以下方法:
-
在存入数据时,除了 key 和 value 的键值对外,加入一个过期时间的键值对。例如:
localStorage.setItem('key', JSON.stringify({ value: 'value', expire: Date.now() + 3600 * 1000 // 设定过期时间为一小时后 }));
-
在获取数据时,先判断该数据的过期时间是否已经超过当前时间。如果已经超过,则删除该数据并返回 null,否则返回该数据的值。例如:
const data = JSON.parse(localStorage.getItem('key')); if (data && data.expire > Date.now()) { return data.value; } else { localStorage.removeItem('key'); return null; }
-
可以在每次访问 localStorage 时,遍历所有存储的数据,判断其过期时间是否已经到达,如果是则删除该数据。例如:
Object.keys(localStorage).forEach((key) => { const data = JSON.parse(localStorage.getItem(key)); if (data && data.expire < Date.now()) { localStorage.removeItem(key); } });
通过以上方法,就可以在 localStorage 中实现过期时间功能了。