具有指定到期时间的持久客户端数据存储

问题描述 投票:0回答:1

我正在寻找一种客户端持久性数据存储方法,该方法在许多浏览器中都是通用的,并且允许指定到期日期,例如document.cookies。我查看了windows.localStorage(无法限制过期)和windows.sessionStorage(过期发生得太早),并且由于所述原因,决定不使用它们。这给我留下了document.cookies。主要问题似乎在于可以阻止cookie。欧盟Cookie政策似乎并未对网站内部使用的会话Cookie施加限制。在当前设计中,阻止cookie的访问者只会看到微不足道的功能损失。

那么除了document.cookies之外,还有另一种客户端持久数据存储的方法吗?

javascript cookies persistent-storage
1个回答
0
投票

您可以只使用localStorage,并在每个存储的值中包含一个时间戳。然后,在读取值时,请检查时间戳记,看它是否太旧而无法考虑。

function storeInLocalStorage(key, val, msLifespan){
    window.localStorage.setItem(key, (new Date().getTime() + msLifespan) + "|" + val);
}

function getFromLocalStorage(key){
    var item = window.localStorage.getItem(key);
    if(item === null) return null;

    var expiration = Number(item.substring(0, item.indexOf("|")));
    if(new Date().getTime() < expiration) return item.substring(item.indexOf("|") + 1);
    return null;
}
© www.soinside.com 2019 - 2024. All rights reserved.