localStorage存对象

什么是localStorage

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

localStorage的优势

1、localStorage拓展了cookie的4K限制
2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
3、localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

localStorage的使用

localStorage.getItem(key):获取指定key本地存储的值
localStorage.setItem(key,value):将value存储到key字段

localStorage存对象

使用localstorage.setItem(name,value)存储JSON对象时会发现浏览器存储的内容为[object,object],并不是我们想要的内容,这是因为我们在存储的时候没有进行类型转换,因此我们在使用localstorage.setItem()进行对象存储之前需要使用JSON.stringify(object)进行类型转换,转换成JSON字符串后进行存储就会是我们想要的样子了{‘xxx’:‘11111’}

### 解决LocalStorage无法储数据的问题 对于遇到的 `localStorage` 储失败的情况,可能的原因有多种。一种常见情况是在某些浏览器环境下,由于安全设置或者隐私模式的影响,可能会阻止 `localStorage` 的正常使用[^2]。 针对具体提到的日程表案例 todoList,在网页中输入待办事项并回车后能够成功保至本地,但在页面刷新之后这些数据却消失了。这通常不是因为 `localStorage` 自身在缺陷,而是其他因素引起的: - **检查代码逻辑**:确认在向 `localStorage` 添加新项时确实调用了正确的 API 方法 (`setItem`) 并且传递了有效的键名和值参数。 - **验证数据格式**:确保所要储的内容是以字符串形式在的;如果是对象或数组,则需先通过 `JSON.stringify()` 将其序列化为 JSON 字符串再入[^3]。 - **处理跨域问题**:如果应用程序涉及多个子域名间的交互,需要注意每个站点下的 `localStorage` 是相互隔离的,不会共享数据。 另外,考虑到现代浏览器的安全机制越来越严格,有时即使正确实现了上述操作仍可能出现异常行为。此时可以考虑采用更稳健的方式来进行客户端持久化储,比如 IndexedDB 或者 Service Worker 配合 Cache API 来实现离线支持等功能。 ```javascript // 正确地将 JavaScript 对象储到 localStorage 中的例子 const task = { title: 'Buy milk', completed: false }; localStorage.setItem('task', JSON.stringify(task)); // 读取并恢复之前保的任务对象 let retrievedTask = JSON.parse(localStorage.getItem('task')); console.log(retrievedTask.title); // 输出 "Buy milk" ``` #### 关于永久性丢失的风险 值得注意的是,尽管被称为“永久”,但实际上 `localStorage` 不具备真正的长期可靠性。用户手动清除浏览记录、更换设备或是使用无痕模式都会导致已有的 `localStorage` 数据被删除。因此建议开发者不要依赖它来保重要信息,并提供额外的数据同步手段作为补充措施[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值