JavaScript 设置会话变量

Mehvish Ashiq 2023年1月30日 2022年5月10日
  1. JavaScript 中的 localStoragesessionStorage
  2. 使用 JavaScript 在 localStoragesessionStorage 中设置变量
JavaScript 设置会话变量

我们的动机是了解会话并在 JavaScript 中设置会话变量。会话是服务器端存储的一部分,根据每个用户的唯一 ID 存储和访问数据。

例如,每当用户与网站交互时,它都会为该特定用户创建一个新的会话对象,并为他们分配一个 cookie

每当用户再次从确切的客户端请求并发送到服务器以进一步处理和更新已存储的会话信息时,都会检查此 cookie。一旦用户清除 cookie,会话就会被清除。

你可能有一个问题,为什么使用会话很重要?

无状态 HTTP 协议不跟踪有关响应和请求的任何信息,这意味着一个用户(同一用户)的多个请求之间没有关系。会话用于解决此问题。

例如,我们有一个包含多个页面的表单。第 1 页、第 2 页和第 3 页分别是关于个人信息、教育详细信息和家庭信息的信息。

只有在用户填写完所有三个页面后,才能提交申请。在这种情况下,我们可能需要将第 1 和第 2 页提交的数据存储到会话中。

一旦用户提交了第 3 页,我们就可以从 HTTP 请求中获取该第 3 页,并从会话中获取剩余的第 1 和第 2 页。这就是会话的使用方式。

现在我们了解会话并知道服务器维护它们。使用 JavaScript 直接分配会话值是不可能的,但我们(作为 Web 开发人员)希望在本地使用会话存储来保存、检索、更新数据。

我们可以使用 localStoragesessionStorage

JavaScript 中的 localStoragesessionStorage

localStorage 对象允许在浏览器中以键值对的形式存储数据而不会过期。即使在关闭标签页或浏览器之后,数据也可用于即将到来的会话(未来会话)。

sessionStorage 对象类似于 localStorage,但它只存储一个会话的数据。关闭或刷新标签页/浏览器时,数据会丢失。

以下是两者之间的简要比较,但你可以在此处找到更多相关信息。

本地存储 会话存储
容量 10 MB 5 MB
浏览器 HTML 5 HTML 5
可从 任何窗口 相同标签
过期 绝不 在标签页上关闭
存储位置 仅限浏览器 仅限浏览器
随请求发送

使用 JavaScript 在 localStoragesessionStorage 中设置变量

localStoragesessionStorage 中存储和检索数据的方法相同。下面列出了这些方法。

  1. setItem(key, value) 存储键值对。
  2. getItem(key) 通过键检索值。
  3. removeItem(key) 删除键和值。
  4. clear() 删除整个存储并清除所有内容。
  5. key(index) 返回特定位置的键。
  6. length 告诉存储项目的数量。

切勿使用这些存储机制来存储机密信息。

localStorage 的 JavaScript 代码练习:

localStorage.setItem('fname','Bob');
localStorage.setItem('lname','Thomas');

console.log(localStorage.getItem('fname'));
console.log(localStorage.getItem('lname'));

//returns null
console.log(localStorage.getItem('firstname'));

//removes the item with key and value
localStorage.removeItem('fname');
//clears the entire storage
localStorage.clear()

输出:

javascript 设置会话变量 - localStorage

sessionStorage 的 JavaScript 代码练习:

sessionStorage.setItem('fname','Bob');
sessionStorage.setItem('lname','Thomas');

console.log(sessionStorage.getItem('fname'));
console.log(sessionStorage.getItem('lname'));

//returns null
console.log(sessionStorage.getItem('firstname'));

//removes the item with key and value
sessionStorage.removeItem('fname');
//clears the entire storage
sessionStorage.clear()

输出:

javascript 设置会话变量 - sessionStorage

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相关文章 - JavaScript Variable