localStorage 使用详解

本文详细介绍了JavaScript中的localStorage,包括其简介、如何调试、CRUD操作以及相关资源。localStorage提供了一种在用户浏览器中安全存储大量数据的方法,不受Cookie的4KB限制,且数据永久保存,只有通过特定方式才能删除。同时,文章还讲解了如何通过开发者工具进行数据的查看和操作。

1. localStorage 简介

localStoragesessionStorage 一样,都是 HTML5 中最新引入的 Web 存储 API

Web 存储 API,英文为 Web Storage API,通过它可以方便地在用户浏览器中存储键值对。

Web 存储 API 包括两个对象:

  • localStorage
  • sessionStorage

HTML5 之前,应用数据需要存放在 Cookie 中,每次请求时都需要携带它。相较而言,Web 存储 API 拥有以下优点:

  • 不向服务器传输信息,更加安全。
  • 比起 [[202009011658 Cookie 数量和大小的限制|Cookie 4kb 的容量限制]],可以在本地存储大量数据,通常为 5mb

除此之外,localStorage 还有以下特点:

  • 永久存储数据,没有过期时间,除非使用 JavaScript、清除浏览器缓存或者本地数据才能够删除。
  • 存储容量上限比 CookieSessionStorage 都要大。
  • 遵循同源策略,来自同一个源的所有页面共享同样的数据。同源指的是域名和协议相同。
  • 其中存储的键值对都是字符串,如果不是字符串将自动转换为字符串。

2. 调试 localStorage

  • Ctrl - Shift - I 或者 F12
  • 点击 Application
  • 左侧点击 Storage 下面的 LocalStorage


3. localStorage 的 CRUD

localStorage 添加或修改数据有三种方式:

localStorage.age = 100
localStorage['age'] = 100
localStorage.setItem('age', 100)  // 推荐使用

localStorage查看数据也有三种方式:

localStorage.age
localStorage['age']
localStorage.getItem('age')  // 推荐使用

localStorage删除数据有三种方式:

delete localStorage.age
delete localStorage['age']
localStorage.removeItem('age')  // 推荐使用

清空整个 localStorage

// 清空整个 localStorage
localStorage.clear()

4. 相关资料


localStorage 是 Web 应用中的一种持久化存储方案,是 Storage 对象的实例对象,可以在 Firefox 开发者工具的控制台输入 `Storage` 和 `localStorage` 查看这两个对象,也可输入 `localStorage instanceof Storage` 或 `localStorage.constructor==Storage` 查看关系 [^1][^3]。 ### 使用方法 - **存储数据**:使用 `setItem` 方法来存储数据。例如,存储一个键值对 "name": "John",可以使用 `localStorage.setItem("name", "John");` 。 - **读取数据**:使用 `getItem` 方法来读取数据。例如,读取键为 "name" 的值,可以使用 `var name = localStorage.getItem("name");` 。 - **删除数据**:使用 `removeItem` 方法删除指定键的数据,如 `localStorage.removeItem("name");` ;使用 `clear` 方法可以清空所有存储的数据,即 `localStorage.clear(); `。 ### 与其他存储方式的比较 - **与 Cookie 的比较**:Cookie 是客户端与服务器通信的桥梁,主要用于状态管理和身份识别,但容量小且影响请求性能。而 LocalStorage 提供了大容量、持久化的纯客户端存储,适合保存用户偏好和离线数据 [^4]。 - **与 SessionStorage 的比较**:SessionStorage 提供了同样大容量但生命周期局限于单个标签页会话的存储,适用于临时性的、标签页内部的状态管理;LocalStorage 数据会一直存储,除非手动删除 [^4]。 ### 应用场景与注意事项 - **应用场景**:适合保存用户偏好设置、离线数据等,例如用户在网页上设置的主题颜色、字体大小等偏好信息,可存储在 localStorage 中,下次打开网页时直接读取使用 [^1][^4]。 - **注意事项**:任何存储方案都需结合具体业务需求,在容量、性能、安全性之间找到平衡,才能实现最优的技术方案设计 [^2]。 ### 存储数组示例 ```javascript var arr = localStorage.getItem("reading"); if (arr) { arr = arr.split(","); } else { arr = []; } var storage = window.localStorage; arr.push($this.attr("data-s")); if (storage) { localStorage.setItem("reading", arr); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值