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日

相关文章

  • jQuery实现动画效果的简单实例

    下面我将详细讲解“jQuery实现动画效果的简单实例”的完整攻略。 前言 在现代web开发中,我们经常需要制作各种动画效果来增加用户体验,利用jQuery来实现动画效果可以帮助开发人员大大降低实现的难度和代码量。在这篇攻略中,我们将通过两个简单的例子来演示如何使用jQuery来实现动画效果。 实例1:淡入淡出效果 下面是一个简单的jQuery实现淡入淡出效果…

    JavaScript 2023年6月10日
    00
  • javascript转换字符串为dom对象(字符串动态创建dom)

    当我们需要通过JS动态创建页面元素时,我们可以将HTML代码存储在字符串中,然后使用JavaScript中的一些操作将其转换为DOM对象。本文将详细介绍这个过程。 1. 使用innerHTML属性创建DOM对象 我们可以使用innerHTML属性将字符串转换为DOM对象。首先,我们需要选择一个已经存在的DOM元素,然后设置它的innerHTML属性为我们要动…

    JavaScript 2023年5月28日
    00
  • HTML+JavaScript模拟实现简单的时钟效果

    下面是HTML+JavaScript模拟实现简单的时钟效果的攻略: 准备工作 首先需要编写一个HTML页面,里面包含用于显示时钟的元素,可以是一个<div>、<span>等等。其中,我们可以用CSS设置时钟的样式,比如字体大小、颜色、边框等。 编写JavaScript代码 获取当前时间 JavaScript提供了Date()对象,可以…

    JavaScript 2023年5月27日
    00
  • Javascript中Math.max和Math.max.apply的区别和用法详解

    JavaScript中,Math.max()和Math.max.apply()都是用来求一组数中的最大值,但它们的用法有所不同,下面我将详细讲解它们的区别和用法。 Math.max() Math.max()方法是用来返回一组数中的最大值。它的用法很简单,直接调用并传入需要比较的数即可。例如: console.log(Math.max(1, 2, 3, 4, …

    JavaScript 2023年6月10日
    00
  • js每隔两秒输出数组中的一项(实例)

    下面是讲解“js每隔两秒输出数组中的一项”的完整攻略,具体步骤如下: 1. 准备工作 在开始实现之前,我们需要明确几个问题: 哪个数组需要输出? 如何输出数组中的一项? 如何达到每隔两秒输出一项的效果? 针对以上问题,我们可以做如下解答: 这里假设我们要输出的数组是一个长度为n的一维数组 输出数组中的一项可以使用数组索引,即array[index]的形式来实…

    JavaScript 2023年5月27日
    00
  • js函数柯里化的方法和作用实例分析

    下面是 JS 函数柯里化的方法和作用实例分析的攻略: 什么是函数柯里化 函数柯里化是一种将接受多个参数的函数转换为接受一个单一参数的函数,并返回一个新的函数的技术。这个新函数能够接着接受剩下的参数,直到接收到所有参数为止。 举个例子,假设有一个 sum 函数可以接受多个数值参数: function sum(a, b, c) { return a + b + …

    JavaScript 2023年5月28日
    00
  • JavaScript 输入框内容格式验证代码

    下面就是 JavaScript 输入框内容格式验证代码的完整攻略。 目录 输入框格式验证的意义 正则表达式初探 使用 HTML5 属性进行格式验证 使用 JavaScript 进行格式验证 1. 输入框格式验证的意义 很多网站都有注册或提交信息的功能,输入框内容格式验证可以帮助用户更好地填写信息,减少错误。同时,也可以减少服务器接收到非法数据的情况。 2. …

    JavaScript 2023年6月10日
    00
  • 如何使用JavaScript和正则表达式进行数据验证

    使用JavaScript和正则表达式进行数据验证是web开发中常用的技术,可以有效地检查用户输入的数据是否符合规定的格式。下面是一个完整的攻略,包括以下步骤: 1. 定义需要验证的数据 在开始编写验证代码之前,需要明确需要验证的数据类型、规则和要求。例如,常见的数据验证包括: 验证用户名是否符合规则,例如只包含英文字母、数字和下划线,长度在6-20个字符之间…

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