你有没有发现,有些网站不用登录,也能记住你上次调过的字体大小,或者暗黑模式的开关状态?关了页面再打开,设置还在。这背后的小功臣,往往就是 ref="/tag/137/" style="color:#8B0506;font-weight:bold;">JavaScript 的 localStorage。
localStorage 是什么?
简单说,localStorage 是浏览器提供的一种“本地存储”能力。它能让网页在用户电脑上存点小数据,比如偏好设置、临时记录,而且这些数据不会因为关闭页面或重启浏览器就消失。
和 cookie 比,它更简单;和服务器数据库比,它更快——毕竟数据就在你自己的设备上。
怎么用?三句话讲明白
假设你正在做一个外设商城页面,想记住用户最后一次选的鼠标 DPI 档位。你可以这样写:
// 存数据
localStorage.setItem('lastDpi', '1600');
// 读数据
const savedDpi = localStorage.getItem('lastDpi');
console.log(savedDpi); // 输出 '1600'
// 删数据(比如恢复默认)
localStorage.removeItem('lastDpi');
就这么简单。下次用户进来,直接读 savedDpi,就能自动把鼠标预设调到他常用的那一档,体验顺滑不少。
实际场景:外设商城的灯光记忆
现在很多机械键盘支持 RGB 灯光调节。用户调了一堆颜色,结果一刷新,全没了。如果加上 localStorage,就能把这些配置存下来:
const userLighting = {
mode: '呼吸',
color: '#ff4500',
speed: '中等'
};
// 存对象记得转成字符串
localStorage.setItem('lightingConfig', JSON.stringify(userLighting));
// 取的时候再转回来
const config = JSON.parse(localStorage.getItem('lightingConfig'));
这样即使用户没登录,换台电脑前临时试用,关掉页面再开,灯光设置还是他在上次调的样子。
注意点:别乱塞大东西
localStorage 虽好,但每个域名一般只能存 5MB 左右。存点设置没问题,要是拿它存用户下载的驱动文件,那就不合适了。另外,它只存字符串,对象要记得用 JSON.stringify 和 JSON.parse 转一下。
还有,它是同源的——也就是说,shop.example.com 存的数据,在 blog.example.com 上是拿不到的。安全,但也有限制。
对于普通用户来说,不需要懂代码。但如果你常折腾外设设置,会发现那些“贴心”的网页工具,很多都靠这点小技术撑起来的。