摘要:下面就一个简单例子来说明存取值曾田生获取删除指定值清空存储事件和存储发生变化就会触发存储事件,事件采用广播的机制,会在同样站点的作用域范围内发送消息。
客户端的存储相当于给浏览器赋予了记忆功能。同一个站点的数据是如何共享数据的,一个页面填写的表单如何显示在另一个页面中,页面关闭或浏览器退出,打开还能重新显示原来的页面,这些都可以依靠浏览器的存储功能来实现。
一、Web存储 1、localStorage和sessionStorage基本代码实现
两个属性都代表同一个Storage对象,一个持久化关联数组,数组使用字符串来索引,储存的值也是字符串的形式。localStorage和sessionStorage的区别在于储存的有效期和作用域不同,储存形式和api是一样的。
一般使用形式
localStorage.name = "曾田生"; // 储存字符串 var name = localStorage.name; // 获取存储信息
当储存数字时会自动转化成字符串,所以在取值是需要手动转换
localStorage.age = 666; var age = parseInt(localStorage.age);
日期也一样
localStorage.time = (new Date()).toUTCString(); var time = new Date(Date.parse(localStorage.time));
咱们常用的json数据
localStorage.jsonData = JSON.stringify(data); var jsonData = JSON.parse(localStorage.jsonData);
存储API
localStorage和sessionStorage除了可以通过上面的设置属性来存储值和通过查询属性来取值外,还有一套API操作数据。
下面就一个简单例子来说明:
// 存取值 localStorage.setItem("name","曾田生"); var name = localStorage.getItem("name"); // 获取 key - value var keyName = localStorage.key(0); var value = localStorage.getItem(keyName); // 删除指定值 localStorage.removeItem("name"); // 清空 localStora localStorage.clear();
存储事件
localStorage和sessionStorage 存储发生变化就会触发存储事件,事件采用广播的机制,会在同样站点的作用域范围内发送消息。注意的是 localStorage和sessionStorage 的区别在于作用域的不同,所以事件触发的窗口也有区别,作用域在下面小节会讲到,还有一点是在发生存储数据改变的窗口上是不会触发该存储事件的。
下面一个小例子:
我打开了两个页面 index.html
btn.addEventListener("click", function () { localStorage.name = "曾田生"; // 储存字符串 var name = localStorage.name; // 获取存储信息 })
index2.html 做存储事件监听:window.addEventListener
window.addEventListener("storage", function(e){ console.log(e); console.log("oldValue: "+ e.oldValue + " newValue:" + e.newValue); });
点击 index.html 的 button 后 index2.html打印出如下消息
存储有效期和作用域
localStorage和sessionStorage 的使用和api是相同的,但它们的有效期和作用域是有区别的。
(1)、localStorage
localStorage 的作用域限定在文档源级别,什么意思呢,协议、主机名、端口三者一样那就是同一文档源,同源的文档间共享同样的localStorage数据。比如如下:
http://www.example.com // 协议:http;主机名:www.example.com https://www.example.com // 不同协议 http://demo.example.com // 不同 主机名 http://www.example.com:8000 // 不同端口
以上只有不满足同源要求,即使在同一台服务器也不能共享localStorage数据。
(2)、sessionStorage
首先 sessionStorage的作用域也是限定在同源里面,并且sessionStorage的作用域还被限定在窗口中。
比如:
A.html
B.html
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61841.html
摘要:本地存储的方案传统把信息存储到客户端的浏览器中但是项目服务器端也是可以获取的把信息存储到服务器上的服务器存储永久存储在客服端的本地。 在客户端运行的js是不能操作用户电脑磁盘中的文件的(这是为了保护客户端运行的安全)。 1、js中的本地存储: 使用js向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可以获取到上一次存储的信息。...
摘要:字节流这个简单的模型将数据存储为长度不透明的字节字符串变量,将任何形式的内部组织留给应用层。字节流数据存储的代表例子包括文件系统和云存储服务。使用同步存储会阻塞主线程,并为应用程序的创建冻结体验。 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 16 篇。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 如果你错过了前面的章节,可以在这里找到它...
摘要:存储客户端存储有几种方式,存储就是其中一种。浏览器兼容性存储有效期永久性。实际上,的数据是写入磁盘中,每次读取数据时,实际上是从硬盘驱动器上读取这些字节。所以不要在客户端存储敏感信息,比如密码或信用卡信息。 WEB存储 客户端存储有几种方式,WEB存储就是其中一种。最初作为H5的一部分被定义成API形式,后来被剥离出来作为独立的标准。所描述的API包含localStorage对象和se...
摘要:维护浏览器和服务器端会话状态的一种方式,一般用于保存用户身份信息。服务器端生成推送到浏览器端,浏览器负责保存和维护数据。 Cookie 维护浏览器和服务器端会话状态的一种方式,一般用于保存用户身份信息。 服务器端生成Cookie推送到浏览器端,浏览器负责保存和维护数据。 特点 域名下的所用请求都会带上Cookie 每条Cookie限制在4KB左右 Cookie在过期时间之前一直有效,若...
阅读 1965·2021-10-25 09:48
阅读 2785·2021-09-22 14:59
阅读 1757·2019-08-29 16:52
阅读 855·2019-08-29 16:07
阅读 2300·2019-08-29 12:38
阅读 1754·2019-08-26 13:23
阅读 877·2019-08-26 11:49
阅读 3267·2019-08-26 10:56