LocalStorage 本身并不支持设置过期时间。它是一种在客户端存储数据且没有到期时间的机制,存储的数据会一直存在,除非用户清除浏览器的数据或者通过代码进行删除。
如果你想要为LocalStorage中的数据设置类似于cookie的过期时间,你需要自己实现这一机制。以下是一个简单的示例,展示了如何在设置时添加一个时间戳,并在获取数据时检查该时间戳:
// 设置带有过期时间的数据到LocalStorage function setItemWithExpiry(key, value, ttl) { const now = new Date(); // ttl (time to live) 以毫秒为单位 const item = { value: value, expiry: now.getTime() + ttl, }; localStorage.setItem(key, JSON.stringify(item)); } // 获取LocalStorage数据,并检查是否过期 function getItemWithExpiry(key) { const itemStr = localStorage.getItem(key); // 如果没有找到对应的项,则直接返回null if (!itemStr) { return null; } const item = JSON.parse(itemStr); const now = new Date(); // 比较当前时间和设置的过期时间 if (now.getTime() > item.expiry) { // 如果时间已经过期,则删除存储项,并返回null localStorage.removeItem(key); return null; } return item.value; } // 示例: 设置一个带有5分钟过期的数据项 setItemWithExpiry('myKey', 'myValue', 300000); // 获取数据 const myValue = getItemWithExpiry('myKey'); if (myValue) { console.log('获取到值:', myValue); } else { console.log('值已过期或不存在.'); }
在这个示例中,setItemWithExpiry 函数接收三个参数:键(key)、值(value)以及存活时间(ttl,指定毫秒数)。存活时间是指从现在开始到数据应该被认为是过期的毫秒数。
getItemWithExpiry 函数尝试检索给定键的值。如果该值不存在或者已经过期,则返回null。
这样,尽管LocalStorage本身不支持过期时间,你也可以通过应用层的代码逻辑来实现此功能。