📜  本地存储和会话存储 |网络存储 API

📅  最后修改于: 2022-05-13 01:56:31.445000             🧑  作者: Mango

本地存储和会话存储 |网络存储 API

SessionStorageLocalStorage被称为 Web 存储 API。可以使用这些 API 将数据存储在客户端。

会话存储:

  • SessionStorage 用于在客户端存储数据。
  • SessionStorage 中保存的最大数据限制约为 5 MB。
  • SessionStorage 中的数据存在直到当前选项卡打开,如果我们关闭当前选项卡,那么我们的数据也会自动从 SessionStorage 中删除。

注意:如果在关闭当前选项卡后我们按 ctrl+shift+T 来恢复该选项卡,那么理想情况下,SessionStorage 中的数据不应该存在,但我们可以看到 SessionStorage 在 chrome、firefox 中维护,但在恢复时不在 safari 浏览器中选项卡。它是恢复选项卡时与浏览器相关的功能。

本地存储:

  • 与 SessionStorage 一样,LocalStorage 也用于在客户端存储数据。
  • LocalStorage 中数据保存的最大限制也约为 5 MB。
  • LocalStorage 没有过期时间,LocalStorage 中的数据会一直持续到用户手动删除。这是 LocalStorage 和 SessionStorage 之间的唯一区别

以下是有关 SessionStorage 和 LocalStorage 的一些详细信息:

  • 两者都是对象类型

  • SessionStorage 和 LocalStorage 中的数据存储格式: 数据必须在 SessionStorage 和 LocalStorage中以 key-value 对的形式存储,并且 key-value 必须是数字或字符串

    在这里可以看出,直到我们以字符串或数字的形式插入数据,我们才能正确获取数据!

    在倒数第二次尝试中,我们将一个普通对象插入到关键极客中,当我们获得该项目时,它返回 [object, object]

    LocalStorage.setItem("geek", {
    "key":"value"
    })
    undefined
    LocalStorage.getItem("geek")
    "[object Object]"
    

    如果我们要存储对象或除字符串/数字之外的其他内容,那么它必须采用我们在上次尝试中所做的字符串形式。

    LocalStorage.setItem("geeks", JSON.stringify({
    "key":"value"
    }))
    undefined
    LocalStorage.getItem("geeks")
    "{"key":"value"}"
    

    在此尝试中,我们使用 JSON.stringify() 方法将对象转换为字符串。

    LocalStorage 和 SessionStorage 中的常用方法:

  • 用于在 Web 存储中存储数据:
    LocalStorage.setItem("key", "value");  //key and value both should be string or number;
    SessionStorage.setItem("key", "value");  //key and value both should be string or number;
    

  • 从网络存储中获取数据:
    LocalStorage.getItem("key");
    SessionStorage.getItem("key");
    
    Here we will pass the key and it will return value.
    

  • 对于获取网络存储对象的长度:
    LocalStorage.length; 
    SessionStorage.length;
    

  • 要删除特定的键值对:
    LocalStorage.removeItem("key");
    SessionStorage.removeItem("key");
    
    when we pass key in method,
    it will erase the complete data related to that key.
    

  • 清除完整存储:
    LocalStorage.clear();
    SessionStorage.clear();
    

  • 为了从网络存储中获取第 n 个键名,我们将传递数字 n:
    LocalStorage.key(n);
    SessionStorage.key(n);
    

    笔记:

    1. Web 存储安全是一个大问题。强烈建议不要将敏感信息存储在网络存储中,因为它始终以纯文本格式存储数据,任何人都可以轻松窃取数据。
      所以永远不要使用网络存储存储密码或支付凭证。
    2. Web 存储只能将数据存储在客户端,只有客户端或我们的 javascript 可以使用该数据。
      要在服务器端保存数据,Cookie 是更好的选择。