gpt4 book ai didi

javascript - 客户端 JS session 库

转载 作者:行者123 更新时间:2023-11-30 12:59:03 25 4
gpt4 key购买 nike

我正在寻找一个客户端 JS 库来存储 session 变量。

我想要一个支持替代存储介质的库,例如可用时使用其他技术的 cookie。例如,我找到了这个(但最后一次更新是在 2009 年): http://code.google.com/p/sessionstorage/

我对安全性不感兴趣(除了应用程序之间的一些数据隔离),因为我不打算存储敏感数据。

举个用例示例,我想为 Chrome 用户显示一条消息“Chrome 用户?下载应用程序”,我想在 session 中保持状态以避免再次向同一用户显示该消息.我不想要服务器端 session ,因为我启用了缓存,所以我必须能够为不同的用户提供完全相同的页面。

最佳答案

如果可用,您可以使用 localStorage,如果不可用,则使用 cookie(或您认为的任何方式):

var appToken = createToken();
try {
if (localStorage.getItem) {
localStorage.downloadAppAlert = appToken;
} else {
setCookie('downloadAppAlert', appToken, 10); // name, a string value, num. of days
}
} catch(e) {
console.log(e);
}

然后您可以使用一些功能来设置您的 cookie - 即我刚在 w3schools 中找到的这个:

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

要通过名称检索 cookie 值 - 在示例中为 downloadAppAlert - 您可以使用 w3schools 链接上的那个或类似这样的东西:

function readCookie(name) {
var nameEQ = name + '=';
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

此外,要在 localStorage 上检索先前设置的项目,您只需:

var appToken = localStorage.getItem('downloadAppAlert');

编辑: 抱歉,由于时间仓促,我忘了提及 createToken() 的作用。它应该是一个随机字母数字生成器函数。你可以在 SO 上找到很多,比如:

Random alpha-numeric string in JavaScript?

Generate random string/characters in JavaScript

Generating (pseudo)random alpha-numeric strings

关于javascript - 客户端 JS session 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com