javascript - 我必须使用 Session Storage 还是 LocalStorage : javascript AWS
问题描述
我有以下情况
第 1 页有一个链接,当用户单击它时,它会导航到门户页面并重新加载页面。所以就在导航之前,会创建一个 JSON 对象
这个对象的大小大约是 4KB。
样品对象
let obj = {
"date":"12/31/2018",
"year":"2019",
"zip":"93252",
"members":[
{
"sdf":true,
"age":21,
"fdssss":false,
"aaaa":false,
"fdss":null,
"fsdfsd":[
"ADULT"
]
},
{
"sdf":true,
"age":21,
"fdssss":false,
"aaaa":false,
"fdss":null,
"fsdfsd":[
"ADULT"
]
}
}
该门户页面有一个反向链接,单击页面将导航回第 1 页并重新加载页面。
因此,当页面导航回来时,我需要再次返回创建的 JSON 对象。我只需要它用于该会话,否则即使重新加载页面,数据也应该是持久的。
- 我必须使用
localStorage
吗?如果我将对象存储在 中localStorage
,我应该在什么时候清除存储?我应该如何处理不同用户之间的关系? - 我必须使用
sessionStorage
吗?数据可用性的范围是什么
我正在使用 AWS 服务。
解决方案
Q1:
你可以有localStorage
,而且你应该在第一个页面加载时的代码处处理它,你可以在用户注销或登录时删除它,存储是关于浏览器而不是用户,如果在不同时间有一些用户在一台计算机后面你必须手动清除所有数据。
Q2:
您也可以拥有sessionStorage
, 每个选项卡,并通过关闭浏览器将其删除。
详细说明:
这取决于您的场景,这意味着localStorage
使用很长时间,但sessionStorage
在您需要临时存储某些东西时使用。
但重要的sessionStorage
是,如果您关闭选项卡和sessionStorage
完全删除的窗口,则每个选项卡都存在它,它用于用户名和密码等关键数据,而localStorage
用于在整个浏览器中共享数据。
localStorage
没有过期日期,它只能通过代码清除,或者清除浏览器缓存或本地存储的数据,而sessionStorage
对象仅为会话存储数据,这意味着数据会一直存储到浏览器(或选项卡)关闭。
最后我建议您使用localStorage
,因为您可能希望在关闭浏览器后在整个浏览器事件中共享该数据,并且您可以存储更多数据,另一方面它们有限制,当您使用存储时,您应该手动处理它们还有,注意安全。
认为:
function removeStorage()
{
var obj = localStorage.getItem('obj');
if(obj !== null)
localStorage.removeItem('obj')
}
并在登录或注销成功操作调用removeStorage()
和 Page1 加载中具有如下内容:
var obj = localStorage.getItem('obj');
if(obj !== null)
{
....
//show the obj in label or do what you want with it
...
}
推荐阅读
- rust - 如何在 Rust 中保存子图像?
- doctrine-orm - Symfony 4 - 如何订购但 DISTINCT 和第二次订购 - Createquerybuilder?
- assembly - 为什么将 init_task 结构地址保存到 arm64 引导代码 __primary_switched 中的 sp_el0?
- python - 如何执行独特的随机函数
- javascript - 我们如何在 ANT D 列中获取/重新呈现异步数据
- spring - 在 Spring Security 中注销后重定向到外部身份验证时出现 Cors 问题
- python - 如何使用 Discord.py 发送消息
- matlab - 从 3 个向量创建热图
- regex - 正则表达式从字符串获取链接,除了多个 www
- php - php修复解析错误语法错误意外