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

yizhihongxing

当涉及到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 使用ajax设置和获取自定义header信息的方法小结

    讲解“js 使用ajax设置和获取自定义header信息的方法小结”的完整攻略。如下所述: 1. 设置自定义header信息 使用Ajax在发送请求时,我们可以额外设置一些自定义的header信息,例如token,user-agent等。以下是使用Ajax设置自定义header信息的方法: var xhr = new XMLHttpRequest(); xh…

    JavaScript 2023年6月11日
    00
  • Web 安全之Cookie劫持详细介绍

    Web 安全之 Cookie 劫持是指攻击者利用各种手段,窃取用户身份认证凭证 Cookie 值,进而获取被攻击者的用户身份信息和操作权限,从而进行一系列有害的攻击行为。下面将为大家介绍 Cookie 劫持的攻击方法和防御策略。 什么是 Cookie 劫持? 在 Web 开发中,服务器端通过 Set-Cookie 头信息发送给客户端浏览器,客户端浏览器存储该…

    JavaScript 2023年6月11日
    00
  • JavaScript中的正则表达式使用及验证qq号码的正则

    正则表达式是一种强大的匹配模式,它在JavaScript中得到了广泛使用。对于开发者来说,掌握正则表达式的使用和验证方法是非常重要的。本文将从JavaScript中的正则表达式基础开始,讲解如何使用正则表达式进行qq号码的验证。 正则表达式基础 正则表达式是一种字符串匹配模式。在JavaScript中,它是通过RegExp对象来创建的。正则表达式由一个模式和…

    JavaScript 2023年6月10日
    00
  • JS阻止事件冒泡的方法详解

    JS阻止事件冒泡的方法详解 事件冒泡是指事件会从最具体的元素逐级向上传递,直到文档中的最顶层元素。在事件传递过程中,事件会在父节点和子节点之间传递,这可能会导致一些意想不到的后果。为了避免这些问题,我们需要了解如何阻止事件冒泡。 StopPropagation 方法 StopPropagation() 方法可以阻止事件继续传递,它的作用是停止事件在 DOM …

    JavaScript 2023年6月10日
    00
  • 图片动画横条广告带上下滚动的JS代码

    下面我来为你详细讲解如何实现“图片动画横条广告带上下滚动的JS代码”。 1. 准备工作 在开始编写代码之前,首先需要准备好以下内容: 在HTML页面中添加一个容器元素,以放置广告内容。 在CSS样式中,设置容器元素的宽度、高度和背景颜色。 准备好需要展示的广告图片,可以通过链接或直接将图片存放在本地。 编写JS代码来实现图片滚动效果。 2. 实现思路 要实现…

    JavaScript 2023年6月11日
    00
  • 九种js弹出对话框的方法总结

    那么首先对于这个主题,我们需要先明确一下一些基本的概念。 什么是对话框 对话框是一种常用的网页中弹出提示信息的方式,类似于当前操作系统的模态对话框。它可以包含文本、按钮、表单等,显示给用户进行操作。 常见的对话框种类 在JS中,常见的对话框包括alert、confirm、prompt、layer、sweetAlert2、artDialog、mbox、weui…

    JavaScript 2023年6月11日
    00
  • javascript中Date()函数在各浏览器中的显示效果

    Date() 函数在 JavaScript 中是用来获取当前时间或者指定时间的对象。在不同的浏览器中,Date() 函数的表现可能会有所区别。下面是详细的攻略。 1. Date() 函数的基本用法 首先来看一下 Date() 函数的基本用法。创建 Date() 对象实例,可以不传参或者传入数字、字符串等表示时间的参数,如下: const now = new …

    JavaScript 2023年5月27日
    00
  • Javascript继承机制的设计思想分享

    Javascript继承机制的设计思想分享 概述 Javascript是一门基于原型实现的语言,继承机制是Javascript的核心概念之一。本文将讲述Javascript继承机制的设计思想和实现方式,为读者提供全面的知识体系。 原型链 Javascript的继承机制是基于原型链实现的,原型链是一种基于对象的链式结构。每个Javascript对象都有一个指向…

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