LuV*_*uVu 2 javascript cookies session-storage local-storage
如何设置特定本地存储变量的到期时间?
示例:如果我有页面免责声明,并且一旦用户单击“接受”,我就会在本地存储中存储某个变量。但是,在12小时之后,我希望将其删除并要求用户再次接受。
我不想将变量存储在会话存储中,因为免责声明将在用户每次打开新选项卡时提示。
Cookies将是另一种解决方案,但我宁愿不要使用它。
谢谢!
没有内置的方法可以使存储中的值过期。一种解决方案是存储时间戳,然后在每次访问中将存储的时间(如果有)与本地时间进行比较,以确定该值是否已过期。例:
const expirationDuration = 1000 * 60 * 60 * 12; // 12 hours
const prevAccepted = localStorage.getItem("accepted");
const currentTime = new Date().getTime();
const notAccepted = prevAccepted == undefined;
const prevAcceptedExpired = prevAccepted != undefined && currentTime - prevAccepted > expirationDuration;
if (notAccepted || prevAcceptedExpired) {
alert("Disclaimer: ...");
localStorage.setItem("accepted", currentTime);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |