首页 > 解决方案 > 我必须使用 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 对象。我只需要它用于该会话,否则即使重新加载页面,数据也应该是持久的。

  1. 我必须使用localStorage吗?如果我将对象存储在 中localStorage,我应该在什么时候清除存储?我应该如何处理不同用户之间的关系?
  2. 我必须使用sessionStorage吗?数据可用性的范围是什么

我正在使用 AWS 服务。

标签: javascriptamazon-web-servicessessionlocal-storage

解决方案


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 
   ...
}

推荐阅读