Javascript怎样使用SessionStorage和LocalStorage

yizhihongxing

使用SessionStorage和LocalStorage可以在客户端存储、读取数据,从而实现一些常见的功能,例如用户登录状态的保持、表单数据的保存等等。SessionStorage一般用于临时保存会话数据,当用户关闭浏览器时会被清除;而LocalStorage可以长期存储,直到用户手动删除或者浏览器清除缓存。

SessionStorage的使用

存储数据

可以使用sessionStorage对象的setItem方法来存储数据,例如:

sessionStorage.setItem("username", "John");
sessionStorage.setItem("email", "john@example.com");

读取数据

可以使用sessionStorage对象的getItem方法来读取数据,例如:

let username = sessionStorage.getItem("username");
let email = sessionStorage.getItem("email");

console.log(username); // 输出 "John"
console.log(email); // 输出 "john@example.com"

示例1:保存表单数据

可以在表单提交时,将表单数据保存到sessionStorage中,待用户下次访问页面时再恢复。示例代码如下:

<form id="myForm">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username">

  <label for="password">Password:</label>
  <input type="password" id="password" name="password">

  <button type="submit">Submit</button>
</form>

<script>
  // 获取表单元素
  let myForm = document.querySelector("#myForm");
  let usernameInput = document.querySelector("#username");
  let passwordInput = document.querySelector("#password");

  // 表单提交事件
  myForm.addEventListener("submit", function(event) {
    // 阻止表单默认提交
    event.preventDefault();

    // 将表单数据保存到sessionStorage中
    sessionStorage.setItem("username", usernameInput.value);
    sessionStorage.setItem("password", passwordInput.value);

    // 跳转到其他页面
    location.href = "other-page.html";
  });

  // 页面加载事件
  window.addEventListener("load", function(event) {
    // 恢复表单数据
    usernameInput.value = sessionStorage.getItem("username") || "";
    passwordInput.value = sessionStorage.getItem("password") || "";
  });
</script>

示例2:保存用户登录状态

可以在用户登录成功后,将登录状态通过sessionStorage保存,然后在访问其他需要登录的页面时,检查sessionStorage中是否保存了登录状态,如果没有则跳转到登录页面。示例代码如下:

// 用户登录成功后,保存登录状态
sessionStorage.setItem("isLogin", "true");

// 另一个需要登录的页面
if (sessionStorage.getItem("isLogin") !== "true") {
  // 未登录,跳转到登录页面
  location.href = "login.html";
}

LocalStorage的使用

存储数据

可以使用localStorage对象的setItem方法来存储数据,例如:

localStorage.setItem("username", "John");
localStorage.setItem("email", "john@example.com");

读取数据

可以使用localStorage对象的getItem方法来读取数据,例如:

let username = localStorage.getItem("username");
let email = localStorage.getItem("email");

console.log(username); // 输出 "John"
console.log(email); // 输出 "john@example.com"

示例3:记住用户偏好设置

可以让用户在一个设置页面中修改一些偏好设置,例如主题颜色、字体大小等等,然后将这些设置保存到localStorage中,在其他页面应用这些设置。示例代码如下:

<label for="theme">Theme:</label>
<select id="theme">
  <option value="light">Light</option>
  <option value="dark">Dark</option>
</select>

<label for="fontSize">Font size:</label>
<select id="fontSize">
  <option value="small">Small</option>
  <option value="medium">Medium</option>
  <option value="large">Large</option>
</select>

<script>
  // 获取元素
  let themeInput = document.querySelector("#theme");
  let fontSizeInput = document.querySelector("#fontSize");

  // 设置页面加载事件
  window.addEventListener("load", function(event) {
    // 恢复偏好设置
    themeInput.value = localStorage.getItem("theme") || "light";
    fontSizeInput.value = localStorage.getItem("fontSize") || "medium";

    // 应用偏好设置
    applyTheme(themeInput.value);
    applyFontSize(fontSizeInput.value);
  });

  // 设置偏好设置变化事件
  themeInput.addEventListener("change", function(event) {
    localStorage.setItem("theme", themeInput.value);
    applyTheme(themeInput.value);
  });

  fontSizeInput.addEventListener("change", function(event) {
    localStorage.setItem("fontSize", fontSizeInput.value);
    applyFontSize(fontSizeInput.value);
  });

  // 实际应用主题样式
  function applyTheme(theme) {
    let body = document.querySelector("body");
    if (theme === "light") {
      body.classList.remove("dark");
    } else {
      body.classList.add("dark");
    }
  }

  // 实际应用字体大小样式
  function applyFontSize(size) {
    document.documentElement.style.fontSize = {
      small: "12px",
      medium: "14px",
      large: "16px"
    }[size];
  }
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript怎样使用SessionStorage和LocalStorage - Python技术站

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

相关文章

  • javascript中 try catch用法

    关于“JavaScript中try catch用法”的完整攻略,我为您总结如下: 什么是try catch try catch 是一个 JavaScript 异常处理机制,通过 try 语句块可以捕获代码中的异常,并在 catch 语句块中对异常进行处理,保证代码的正常执行。 try catch 语句格式 try { // 可能会抛出错误的代码 } catc…

    JavaScript 2023年5月28日
    00
  • JS与jQuery实现子窗口获取父窗口元素值的方法

    下面是我为您准备的详细攻略: JS与jQuery实现子窗口获取父窗口元素值的方法 在Web开发中,有时需要在子窗口中获取父窗口中的某个元素的值,常规情况下使用JS和jQuery可以实现此功能。下面将简单介绍两种实现方式。 1. 使用window.opener对象 window.opener对象是一个已经打开的窗口的引用,我们可以通过它在子窗口中访问父窗口的元…

    JavaScript 2023年5月28日
    00
  • Javascript Array join 方法

    以下是关于JavaScript Array join方法的完整攻略。 JavaScript Array join方法 JavaScript Array join方法用于将数组中的所有元素转换为一个字符串。该方法将数组中的每个元素转换为字符串,并使用指定的分隔符将它们连接起来。如果没有指定分隔符,则默认使用逗号作为分隔符。 下面是一个使用join方法的示例: …

    JavaScript 2023年5月11日
    00
  • JavaScript检测原始值、引用值、属性

    JavaScript是一门弱类型语言,因此理解原始值和引用值的概念对于开发人员来说至关重要。在JavaScript中,有两种类型的值:原始值和引用值。原始值是不可变的,而引用值是可变的。 JavaScript的原始值和引用值 JavaScript的原始值包括字符串、数字、布尔值等。原始值是不可变的,也就是说,无法直接更改原始值的值。例如: let a = &…

    JavaScript 2023年6月10日
    00
  • 零基础轻松学JavaScript闭包

    零基础轻松学JavaScript闭包 什么是闭包 闭包的定义 闭包是指那些能够访问自由变量的函数。自由变量是指在函数中使用,但既不是函数参数,也不是函数的局部变量的变量。 闭包 = 函数 + 函数能够访问的自由变量 闭包的作用 闭包主要有以下两个作用: 延长外部作用域中变量的声明周期。当一个函数返回了一个内部函数后,内部函数会继续保持对外部函数的作用域的引用…

    JavaScript 2023年6月10日
    00
  • 原生js实现3D轮播图

    下面是完整的“原生js实现3D轮播图”的攻略: 1. 确定轮播图的基本结构和样式 首先,需要明确轮播图的结构和样式。通常情况下,我们会使用一个外层容器作为整个轮播图的父容器,然后在其内部创建一个可滚动的容器,用来存放每一张轮播图的卡片;同时,在卡片内部再创建一个容器用来存放图片和其他信息。以下是一个示例的HTML代码: <div class=&quot…

    JavaScript 2023年6月11日
    00
  • Flutter web bridge 通信总结分析详解

    Flutter web bridge 通信总结分析详解 本文将详细讲解Flutter Web中的Bridge通信机制。Flutter Web框架中,开发者可以使用Bridge来实现Flutter与Web端的通信交互。Bridge通信机制主要包含以下三个部分:Method Channel、Event Channel、Basic Message Channel。…

    JavaScript 2023年6月11日
    00
  • JS动画定时器知识总结

    标题:JS动画定时器知识总结 正文: 1. 前言 在前端开发中,动画交互是一个很重要的部分。JS定时器作为动画交互的实现方式之一,在使用过程中存在着一些需要注意的点。本文将针对JS动画定时器进行一个总结,希望能对读者在动画交互的应用中提供一些帮助。 2. 定时器概念 在JavaScript中,有两种定时器:setInterval()和setTimeout()…

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