JS (Javascript) 中的本地存储和会话存储和Cookie

345 阅读3分钟

JavaScript 中的本地存储是什么?
本地存储是 Web API 的一部分,允许您以对象(键值对)的形式在 Web 浏览器中存储数据

  • 本地存储不使用缓存来存储数据,这就是为什么如果关闭浏览器,本地存储数据就不起作用 - 每个
    URL 在浏览器中都有其专用的本地存储,用于持久存储数据
  • 本地存储主要用于客户端- 侧状态、管理记住用户操作、会话管理、离线支持

使用本地存储:

setItem(key, value):此方法允许在网络浏览器中存储Key和配对value

localStorage.setItem('username', 'Diwakar');

getItem(key):此方法从本地存储中检索与特定键关联的值

const username = localStorage.getItem('username');
console.log(username); // Output: Diwakar

removeItem(key):该方法从键本地存储中删除与指定关联的键值对

localStorage.removeItem('username');

clear():该方法用于删除与该URL关联的所有本地存储

localStorage.clear();

什么是会话存储?

Session 存储与 Local Storage 类似,唯一的区别是如果关闭浏览器数据就会消失
-Session 存储是使用缓存来存储数据,这就是为什么如果关闭浏览器那么 Session 存储数据就会消失 -
每个 URL 都有其Web 浏览器内的专用会话存储,用于像本地存储一样持久存储数据 -
会话存储主要用于多步骤流程、客户端缓存、状态管理、消息传递和通知

要使用会话存储:

会话存储的所有主要方法与本地存储相同

setItem(key, value):此方法允许在网络浏览器中存储Key和配对value

localStorage.setItem('username', 'Diwakar');

getItem(key):此方法从会话存储中检索与特定键关联的值

const username = localStorage.getItem('username');
console.log(username); // Output: Diwakar

removeItem(key):该方法从Session存储的key中删除指定关联的键值对

localStorage.removeItem('username');

clear():该方法用于删除与该URL关联的所有Session存储

localStorage.clear();

JavaScript 中的Cookie是什么?

网站利用 JavaScript cookie 在用户浏览器上存储小数据片段。这些片段的目的是保留用户相关信息或监控他们的浏览行为。作为标准做法,cookie 伴随每个网站请求,使服务器能够访问存储的数据。

以下是如何在 JavaScript 中使用 cookie:-

1- 设置 Cookie:

document.cookie = "cookieName=cookieValue; expires=expiryDate; path=/";

cookieName是 cookie 的名称。

cookieValue是你想要存储的值。

expires(可选)指定 cookie 的到期日期。格式应为“expires=Thu, 01 Jan 2023 00:00:00 GMT”。

path(可选)设置 cookie 的范围。默认情况下,它适用于当前路径。

2- 获取 Cookie:

var cookies = document.cookie;

document.cookie属性包含所有 cookie 作为字符串。您需要解析并提取您想要的特定 cookie。

3-解析并提取特定的cookie:

function getCookie(name) {
  var cookieValue = null;
  var cookies = document.cookie.split(';');
  for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i].trim();
    if (cookie.startsWith(name + '=')) {
      cookieValue = cookie.substring(name.length + 1);
      break;
    }
  }
  return cookieValue;
}

您可以使用该getCookie函数通过提供特定 cookie 的名称来提取其值。

4-删除cookie:

要删除 cookie,您必须将其过期日期设置为过去的日期:

document.cookie = "cookieName=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

Cookie 的大小有限,可以通过客户端代码访问。敏感信息不应存储在 cookie 中。现代 Web 开发使用本地存储或会话存储来实现数据持久性。