博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站页面间脚本传值 sessionStorage
阅读量:5975 次
发布时间:2019-06-19

本文共 2266 字,大约阅读时间需要 7 分钟。

sessionStorage、localStorage详解

webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。在JavaScript语言中可通过 window.sessionStorage 或 sessionStorage 调用此对象。

localStorage

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。

sessionStorage

sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。

localStorage和sessionStorage的区别:

(1)、localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。

(2)、他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。

(3)、localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了

(4)、不同浏览器无法共享localStorage或sessionStorage中的信息。localStorage相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

(5)、

(不同源,因为协议不同)

localStorage、和sessionStorage的用法:

localStorage和sessionStorage使用时使用相同的API:

1、属性

sessionStorage.length :返回一个整数,表示存储在 sessionStorage 对象中的数据项(键值对)数量。

2、方法

方法 sessionStorage.key(int index) :返回当前 sessionStorage 对象的第index序号的key名称。若没有返回null。

方法 sessionStorage.getItem(string key) :返回键名(key)对应的值(value)。若没有返回null。

方法 sessionStorage.setItem(string key, string value) :该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。

方法 sessionStorage.removeItem(string key) :将指定的键名(key)从 sessionStorage 对象中移除。

方法 sessionStorage.clear() :清除 sessionStorage 对象所有的项。

存储Json对象:

sessionStorage也可存储Json对象:存储时,通过JSON.stringify()将对象转换为文本格式;读取时,通过JSON.parse()将文本转换回对象。

var userEntity = {

name: 'tom',age: 22

};

// 存储值:将对象转换为Json字符串

sessionStorage.setItem('user', JSON.stringify(userEntity));

// 取值时:把获取到的Json字符串转换回对象

var userJsonStr = sessionStorage.getItem('user');

userEntity = JSON.parse(userJsonStr);

console.log(userEntity.name); // => tom

存储数组对象:

sessionStorage不可以直接存储数组对象,需要先把数组对象转化为JSON对象,再用JSON对象去存储

var userEntity = {    tempArr:[1,2,3,4,5,6,7,8,9]};// 存储值:将对象转换为Json字符串sessionStorage.setItem('arr', JSON.stringify(userEntity));// 取值时:把获取到的Json字符串转换回对象var userJsonStr = sessionStorage.getItem('arr');userEntity = JSON.parse(userJsonStr);console.log(userEntity.tempArr); // => [1,2,3,4,5,6,7,8,9]

参考资料:

版权声明:

转载于:https://blog.51cto.com/zhaoyingyatou/2139549

你可能感兴趣的文章
MPAndroidChart---饼状图PieChart
查看>>
PHP中基于b2core框架内部的网页上Html输出生成Word的处理
查看>>
采用Servlet Listener方式运行Liquibase
查看>>
TCP-IP 学习(三) TCP
查看>>
对比两个无序整形数组相似度问题算法
查看>>
批量有效地修改package名
查看>>
android或ios app请求参数格式
查看>>
Camera Vision - video surveillance on C#
查看>>
如何理解网络连接中的"3次握手"?
查看>>
使用Dubbo服务出现java.io.IOException: invalid constant type: 18异常解决办法
查看>>
一条命令完成砸壳
查看>>
PYKit目录
查看>>
JSON使用总结
查看>>
php-redis中文帮助手册_系统相关_config_eval_evalSha_script...
查看>>
Tomcat Context配置
查看>>
CentOS6.5安装ntopng
查看>>
mysql事务rollback&commit
查看>>
Node.js搭建Web服务器
查看>>
Shell脚本学习
查看>>
JAX-RS入门 五: 自动类型转换
查看>>