localstorage是html5提供的本地存储方案,它允许在客户端持久化存储键值对数据,且不会随http请求发送,相比cookie具有更大容量(5-10mb)和更简单的api操作;1. 存储数据使用setitem(),但只能存储字符串,复杂数据需通过json.stringify()序列化;2. 获取数据使用getitem(),对应需用json.parse()还原对象;3. 删除单个数据用removeitem(),清空全部用clear();4. 可通过length和key()遍历存储内容;5. 与sessionstorage的区别在于生命周期,localstorage数据长期存在,除非手动清除,而sessionstorage仅在当前会话有效,关闭标签页即消失;6. 相比cookie,localstorage不自动发送到服务器,减少网络开销,且容量更大、操作更简便,但安全性较低,易受xss攻击,因此不应存储敏感信息;7. 使用时需注意数据类型限制、同步阻塞主线程、存储空间上限及同源策略限制,合理选择存储方案以提升性能与安全。

HTML5本地存储,简单来说,就是浏览器提供给网页的一种在用户本地保存数据的能力。它不像传统cookie那样容量小、每次请求都带到服务器,而是允许我们直接在客户端存储更多数据,并且这些数据是持久化的,除非用户手动清除,否则它们会一直存在。而
localStorage
操作
localStorage
要往里面存数据,我们用
setItem()
立即学习“前端免费学习笔记(深入)”;
localStorage.setItem('userName', '张三');这里需要注意的是,
localStorage
[object Object]
1,2,3
JSON.stringify()
JSON.parse()
const userProfile = {
name: '李四',
age: 30,
city: '北京'
};
localStorage.setItem('userProfile', JSON.stringify(userProfile));
// 取出来的时候
const storedProfile = JSON.parse(localStorage.getItem('userProfile'));
console.log(storedProfile.name); // 输出:李四取数据呢,就用
getItem()
const name = localStorage.getItem('userName');
console.log(name); // 输出:张三如果你想删除某个特定的数据项,
removeItem()
localStorage.removeItem('userName');要是想把当前域名下
localStorage
clear()
localStorage.clear(); // 小心使用,这会清空所有数据!
有时候,你可能想知道
localStorage
length
key()
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
const value = localStorage.getItem(key);
console.log(`${key}: ${value}`);
}在我看来,
localStorage
这是个经常被问到的问题,而且确实很重要,因为它决定了你的数据“活”多久。
localStorage
sessionStorage
localStorage
removeItem()
clear()
localStorage
而
sessionStorage
sessionStorage
sessionStorage
选择哪个,完全取决于你的数据需要“活”多久,以及它是否需要跨标签页共享。
这确实是个值得深思的问题,毕竟Cookie存在了这么久,为什么现在很多场景下会转向
localStorage
一个最直接的考量就是存储容量。传统的Cookie,每个域名下的存储容量非常有限,通常只有4KB左右。这对于存储一些简单的用户ID、session ID之类的还好,但如果你想在客户端缓存一些稍微复杂的数据,比如用户配置、离线数据,4KB就显得捉襟见肘了。
localStorage
其次是性能和网络负载。Cookie有一个“烦人”的特性,就是它每次HTTP请求都会自动携带到服务器。这意味着,即使你的数据只在客户端使用,每次向服务器发送请求时,这些Cookie数据也会被上传。当Cookie数量多或体积大时,这会增加网络流量,影响请求性能。
localStorage
再者是API的易用性。操作
localStorage
setItem
getItem
removeItem
clear
localStorage
当然,Cookie也有它不可替代的优势,比如它天生支持服务器设置
HttpOnly
Secure
SameSite
localStorage
localStorage
HttpOnly
localStorage
HttpOnly
在我看来,选择哪种存储方式,最终还是取决于数据的性质、安全要求以及应用场景。
localStorage
尽管
localStorage
一个很常见的误区是存储的数据类型。我前面提到过,
localStorage
localStorage.setItem('myObject', {a: 1})[object Object]
JSON.stringify()
JSON.parse()
Date
undefined
JSON.stringify()
Date
new Date()
安全性问题也是一个大头。
localStorage
localStorage
localStorage
HttpOnly
再来就是同步操作的问题。
localStorage
setItem
getItem
存储空间限制虽然比Cookie大很多,但也不是无限的。通常是5MB到10MB,具体取决于浏览器和用户设置。如果你的应用尝试存储超过这个限制的数据,
localStorage.setItem()
QuotaExceededError
最后,一个容易被忽视的点是跨域问题。
localStorage
http://example.com
http://sub.example.com
https://example.com
http://another-domain.com
在我看来,理解这些“坑”不是为了避免使用
localStorage
以上就是HTML5本地存储是什么?localStorage怎么操作?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号