javascript七基础学习系列二千二百零七:localStorage 对象

在修订的HTML5 规范里,localStorage 对象取代了globalStorage,作为在客户端持久存储
数据的机制。要访问同一个localStorage 对象,页面必须来自同一个域(子域不可以)、在相同的端
口上使用相同的协议。
因为localStorage 是Storage 的实例,所以可以像使用sessionStorage 一样使用
localStorage。比如下面这几个例子:
// 使用方法存储数据
localStorage.setItem(“name”, “Nicholas”);
// 使用属性存储数据
localStorage.book = “Professional JavaScript”;
// 使用方法取得数据
let name = localStorage.getItem(“name”);
// 使用属性取得数据
let book = localStorage.book;
两种存储方法的区别在于,存储在localStorage 中的数据会保留到通过JavaScript 删除或者用户
清除浏览器缓存。localStorage 数据不受页面刷新影响,也不会因关闭窗口、标签页或重新启动浏览
器而丢失。
存储事件
每当Storage 对象发生变化时,都会在文档上触发storage 事件。使用属性或setItem()设置
值、使用delete 或removeItem()删除值,以及每次调用clear()时都会触发这个事件。这个事件的
事件对象有如下4 个属性。
 domain:存储变化对应的域。
 key:被设置或删除的键。
 newValue:键被设置的新值,若键被删除则为null。
 oldValue:键变化之前的值。
可以使用如下代码监听storage 事件:
window.addEventListener(“storage”,
(event) => alert(‘Storage changed for ${event.domain}’));
对于sessionStorage 和localStorage 上的任何更改都会触发storage 事件,但storage 事
件不会区分这两者。
限制
与其他客户端数据存储方案一样,Web Storage 也有限制。具体的限制取决于特定的浏览器。一般
来说,客户端数据的大小限制是按照每个源(协议、域和端口)来设置的,因此每个源有固定大小的数
据存储空间。分析存储数据的页面的源可以加强这一限制。
不同浏览器给localStorage 和sessionStorage 设置了不同的空间限制,但大多数会限制为每
个源5MB。关于每种媒介的新配额限制信息表,可以参考web.dev 网站上的文章“Storage for the Web”。
要了解关于Web Storage 限制的更多信息,可以参考dev-test.nemikor 网站的“Web Storage Support
Test”页面。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
localStorage和sessionStorage是JavaScript中的两个对象,用于在浏览器中存储数据。它们提供了一种在浏览器会话期间(sessionStorage)或者永久保存(localStorage)数据的方式。 通过localStorage和sessionStorage对象,可以进行以下操作: 1. 存储数据:使用setItem()方法将数据存储到localStorage或sessionStorage中。例如: ```javascript localStorage.setItem('key', 'value'); // 存储到localStorage sessionStorage.setItem('key', 'value'); // 存储到sessionStorage ``` 2. 获取数据:使用getItem()方法从localStorage或sessionStorage中获取存储的数据。例如: ```javascript var value = localStorage.getItem('key'); // 从localStorage获取数据 var value = sessionStorage.getItem('key'); // 从sessionStorage获取数据 ``` 3. 更新数据:使用setItem()方法更新已存储的数据。例如: ```javascript localStorage.setItem('key', 'new value'); // 更新localStorage中的数据 sessionStorage.setItem('key', 'new value'); // 更新sessionStorage中的数据 ``` 4. 删除数据:使用removeItem()方法从localStorage或sessionStorage中删除指定的数据。例如: ```javascript localStorage.removeItem('key'); // 从localStorage删除指定的数据 sessionStorage.removeItem('key'); // 从sessionStorage删除指定的数据 ``` 5. 清空数据:使用clear()方法清空localStorage或sessionStorage中的所有数据。例如: ```javascript localStorage.clear(); // 清空localStorage中的所有数据 sessionStorage.clear(); // 清空sessionStorage中的所有数据 ``` 需要注意的是,localStorage中存储的数据在浏览器关闭后仍然存在,而sessionStorage中存储的数据只在当前会话期间有效,即当用户关闭浏览器标签页或窗口时会被清除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值