HTML5 本地存储中的项目何时过期?

2022-08-29 23:26:19

数据存储在(作为HTML5中DOM存储的一部分)中可以使用多长时间?是否可以为放入本地存储的数据设置过期时间?localStorage


答案 1

我建议将时间戳存储在本地存储中的对象

var object = {value: "value", timestamp: new Date().getTime()}
localStorage.setItem("key", JSON.stringify(object));

您可以解析对象,获取时间戳并与当前 Date 进行比较,并在必要时更新对象的值。

var object = JSON.parse(localStorage.getItem("key")),
    dateString = object.timestamp,
    now = new Date().getTime().toString();

compareTime(dateString, now); //to implement

或者,您可以使用像localstorage-slim这样的轻量级包装器.js它可以为您处理这个问题。


答案 2

无法指定过期时间。这完全取决于用户。

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

当然,您的应用程序存储在客户端上的内容以后可能不存在。用户可以显式摆脱本地存储,或者浏览器可能会遇到空间注意事项。防御性编程是件好事。然而,一般来说,根据这个词的一些实际定义,事情仍然是“永远的”。

编辑 - 显然,你自己的应用程序可以主动删除东西,如果它认为它太旧了。也就是说,您可以在保存的内容中显式包含某种时间戳,然后稍后使用它来决定是否应刷新信息。