localStorage 本地缓存

localStorage 是一种在客户端(通常是浏览器)存储数据的方式,它允许网站存储数据在用户的计算机上,并且这些数据可以在浏览器关闭后仍然保留。它非常适合存储一些用户偏好设置、表单数据、以及其他需要在用户下次访问时保留的信息。

基本用法

存储数据

你可以使用 localStorage.setItem(key, value) 方法来存储数据。其中 key 是数据的名称,value 是要存储的数据值(通常是一个字符串,但也可以是其他类型的数据,存储时会转换为字符串)。

javascript 复制代码
localStorage.setItem('username', 'JohnDoe');
获取数据

使用 localStorage.getItem(key) 方法可以获取之前存储的数据。

javascript 复制代码
let username = localStorage.getItem('username');
console.log(username); // 输出: JohnDoe
移除数据

使用 localStorage.removeItem(key) 方法可以移除存储的数据。

javascript 复制代码
localStorage.removeItem('username');
清除所有数据

使用 localStorage.clear() 方法可以清除 localStorage 中的所有数据。

javascript 复制代码
localStorage.clear();

存储复杂数据类型

由于 localStorage 只能存储字符串,当你需要存储复杂数据类型(如对象或数组)时,你需要先将它们转换为字符串(通常使用 JSON.stringify()),然后在读取时再将字符串转换回原始数据类型(使用 JSON.parse())。

存储对象
javascript 复制代码
let user = { name: 'JohnDoe', age: 30 };
localStorage.setItem('user', JSON.stringify(user));
获取对象
javascript 复制代码
let userStr = localStorage.getItem('user');
let userObj = JSON.parse(userStr);
console.log(userObj.name); // 输出: JohnDoe

注意事项

  1. 存储限制 :不同的浏览器对 localStorage 的存储大小有不同的限制,通常在 5MB 到 10MB 之间。
  2. 同源策略 :localStorage 数据只能由创建它的同源(即相同的协议、域名和端口)访问。
  3. 数据安全性 :localStorage 数据不是加密的,因此不要在其中存储敏感信息(如密码)。
  4. 持久性 :localStorage 数据会一直保留,直到用户手动清除(通过浏览器设置或调用 localStorage.clear())。

示例

下面是一个简单的示例,演示如何使用 localStorage 存储和获取用户登录状态:

javascript 复制代码
// 存储用户登录状态
function setLoginStatus(isLoggedIn) {
    localStorage.setItem('isLoggedIn', isLoggedIn.toString());
}

// 获取用户登录状态
function getLoginStatus() {
    return localStorage.getItem('isLoggedIn') === 'true';
}

// 示例使用
setLoginStatus(true);
console.log(getLoginStatus()); // 输出: true

通过使用 localStorage,你可以轻松地在客户端存储和检索数据,从而提供更好的用户体验。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端