JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用

当涉及到JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)时,我们需要首先了解这两种存储方式的概念和用途。

本地存储(LocalStorage)和会话存储(SessionStorage)

本地存储(LocalStorage)和会话存储(SessionStorage)都是HTML5中Web StorageAPI的一部分。它们提供了在浏览器中存储数据的简单方法,无需依靠服务器。

本地存储(LocalStorage)

本地存储(LocalStorage)允许我们在浏览器关闭后,保留存储在其中的数据。它的数据大小限制为5MB左右。我们只需使用JavaScript的几个简单命令就可以访问本地存储。

以下是LocalStorage的一些重要方法:

  • localStorage.setItem: 存储键值对数据,如果key已经存在则覆盖
  • localStorage.getItem: 获取在localStorage中指定key的值
  • localStorage.removeItem: 从LocalStorage中删除指定键的键值对
  • localStorage.clear:删除所有localStorage的键值对

以下代码示例展示了如何使用LocalStorage在浏览器中存储和获取数据:

localStorage.setItem("name", "Alice");
localStorage.setItem("age", "24");

console.log(localStorage.getItem("name"));
console.log(localStorage.getItem("age"));

输出:

Alice
24

会话存储(SessionStorage)

会话存储(SessionStorage)与LocalStorage类似,但是会话存储只能在浏览器窗口或标签页关闭之前保存数据。一旦关闭,所有数据就会被清除。我们可以使用与LocalStorage相同的方法来操作会话存储。

以下是SessionStorage的一些重要方法:

  • sessionStorage.setItem: 存储键值对数据,如果key已经存在则覆盖
  • sessionStorage.getItem: 获取在sessionStorage中指定key的值
  • sessionStorage.removeItem: 从sessionStorage中删除指定键的键值对
  • sessionStorage.clear: 删除所有sessionStorage的键值对

以下代码示例展示了如何使用SessionStorage在浏览器中存储和获取数据:

sessionStorage.setItem("username", "Jack");
sessionStorage.setItem("password", "123456");

console.log(sessionStorage.getItem("username"));
console.log(sessionStorage.getItem("password"));

输出:

Jack
123456

实战应用

示例一:记住用户选择

在这个示例中,我们将介绍如何使用LocalStorage记录用户选择的主题,并在下一次会话中自动应用该选择。

function setTheme(theme) {
  //将选择的主题保存到LocalStorage
  localStorage.setItem("theme", theme);
  // 将文档的样式class设置为所选主题
  document.body.className = theme;
}

// 载入文档时,检查LocalStorage中是否有保存的主题
function loadTheme() {
  let theme = localStorage.getItem("theme");
  if (theme) {
    //如果保存了主题,则将文档的样式class设置为所选主题
    document.body.className = theme;
    // 设置选择框的选中状态
    document.getElementById(theme).checked = true;
  }
}

//当用户选择新的主题时,调用setTheme()函数来更新LocalStorage和文档样式
document.querySelectorAll("input[type=radio]").forEach((radio) => {
  radio.addEventListener("click", () => {
    setTheme(radio.id);
  });
});

// 在窗口加载时载入保存的主题
loadTheme();

在上面的代码中,我们使用LocalStorage存储用户选择的主题,使得下一次打开网站时,可以自动应用上次的选择。

示例二:存储表单数据

以下是一个基本的表单页面,我们将使用SessionStorage存储表单数据。

<form>
  <label for="name">姓名:</label>
  <input type="text" id="name" name="name" />

  <label for="email">电邮:</label>
  <input type="email" id="email" name="email" />

  <label for="message">留言:</label>
  <textarea id="message" name="message"></textarea>

  <button type="submit" id="submit">提交</button>
</form>

以下是将表单数据保存到SessionStorage中的代码示例:

const form = document.querySelector("form");
const submitButton = document.querySelector("#submit");

//监听表单提交
form.addEventListener("submit", (event) => {
  //阻止默认表单提交行为
  event.preventDefault();

  //创建一个FormData对象来收集表单数据
  const formData = new FormData(form);

  //将FormData对象中的数据转换成JSON格式字符串
  const jsonData = JSON.stringify(Object.fromEntries(formData.entries()));

  //将JSON数据保存到SessionStorage中
  sessionStorage.setItem("formData", jsonData);

  //重定向到另一个页面
  window.location.href = "another-page.html";
});

//在表单上显示SessionStorage中保存的数据
if (sessionStorage.formData) {
  const data = JSON.parse(sessionStorage.formData);
  document.querySelector("#name").value = data.name;
  document.querySelector("#email").value = data.email;
  document.querySelector("#message").value = data.message;
  sessionStorage.removeItem("formData");
}

以上是一个简单的示例,通过SessionStorage保存表单数据,并将数据在另一个页面中显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS对象创建的几种方式整理

    JS对象创建的几种方式整理的攻略如下: 1. 对象字面量方式 对象字面量方式是指直接使用 {} 创建对象,使用键值对的方式来描述对象的属性和属性值。示例如下: const person = { name: "Alice", age: 25, sayHi: function() { console.log("Hi, I’m &qu…

    JavaScript 2023年5月27日
    00
  • 值得收藏的一些HTML、JavaScript、ASP代码

    首先我们要明确一下,“值得收藏的一些HTML、JavaScript、ASP代码”指的是什么? 什么是值得收藏的代码? 值得收藏的代码是指那些能够提高你开发效率,实现一些高级功能或者增强用户交互,甚至带来一些乐趣的代码片段。这些代码可能是通过互联网上各种途径获得的,可能是来自优秀的开源项目,也可能是自己编写的。 这里我将讲解以下几个方面: 如何搜索值得收藏的代…

    JavaScript 2023年6月10日
    00
  • js实现的美女瀑布流效果代码

    这里是“js实现的美女瀑布流效果代码”的完整攻略: 瀑布流效果简介 瀑布流效果(Waterfall Flow)是指像瀑布一样一列接一列的布局方式。随着页面滚动,页面中的图片会自动根据设置好的列数和间距排列,并且会动态加载。瀑布流效果是现代网站中十分流行的一种图片展示方式。 实现方法 瀑布流效果的实现方法比较多,包括纯CSS实现和JS实现。纯CSS实现的瀑布流…

    JavaScript 2023年6月11日
    00
  • JavaScript Base64编码和解码,实现URL参数传递。

    首先我们需要了解什么是Base64编码。Base64编码是将二进制数据通过特定算法转换成文本字符串的一种编码方式。在浏览器中使用Base64编码的最常见场景就是在URL中传递参数,因为URL中不能包含某些字符,Base64编码后的字符串是可以安全传递的。 接下来我们讲一下如何使用JavaScript进行Base64编码和解码。 在JavaScript中,我们…

    JavaScript 2023年5月20日
    00
  • JS正则表达式验证数字代码

    下面我将详细讲解 JS 正则表达式验证数字代码的完整攻略。 步骤 1. 构建正则表达式 首先需要构建一个用于验证数字的正则表达式。一般来说,数字可以包含整数和小数,还可能有正负号。 验证整数和小数的正则表达式如下: /^-?\d+(\.\d+)?$/ 其中: ^ 表示字符串开始 -? 表示可以有一个可选的负号 \d+ 表示至少一个数字 (\.\d+)? 表示…

    JavaScript 2023年6月10日
    00
  • JavaScript中的连字符详解

    JavaScript中的连字符详解 什么是连字符 在JavaScript中,连字符是由破折号(-)组成的标识符,它也被称为短横线或减号。在 HTML 和 CSS 中,连字符也经常被使用。在 JavaScript 中,我们可以使用连字符作为变量名、函数名或方法名。 连字符的命名规则 在 JavaScript 中,连字符可以出现在变量名、函数名或方法名中,但是我…

    JavaScript 2023年5月28日
    00
  • 微信小程序页面传多个参数跳转页面的实现方法

    以下是关于“微信小程序页面传多个参数跳转页面的实现方法”的详细攻略。 1. 基础知识:微信小程序页面传参 在微信小程序中,页面跳转时可以使用wx.navigateTo()方法来进行页面跳转,同时也可以使用wx.redirectTo()等其他相关方法来进行页面跳转。对于页面跳转传参,一般的方法是使用URL参数传递,例如: wx.navigateTo({ url…

    JavaScript 2023年6月11日
    00
  • 比特币新时代:BRC-20的机遇与风险

    比特币新时代:BRC-20的机遇与风险攻略 随着区块链技术的快速发展,BRC-20标准被越来越多的项目所采用。而在采用BRC-20标准的项目中,比特币新时代是当前最受关注的一个。本文将从以下几个方面,对于BRC-20标准及其在比特币新时代中的机遇与风险进行详细讲解。 BRC-20标准是什么 BRC-20标准是基于以太坊智能合约的代币标准,类似于以前的ERC-…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部