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)、

http://www.test.com

https://www.test.com (不同源,因为协议不同)

http://my.test.com(不同源,因为主机名不同)

http://www.test.com:8080(不同源,因为端口不同)

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://www.cnblogs.com/polk6/p/5512979.html#Menu3_3-SetOfJson

https://segmentfault.com/a/1190000012057010

http://blog.csdn.net/kerryqpw/article/details/71439104
版权声明: https://blog.csdn.net/qq_30868289/article/details/79582280

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

网站页面间脚本传值 sessionStorage相关推荐

  1. 页面间的传值(小结)

    使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能 ...

  2. jsp java 传值方法_JSP页面间的传值方法总结

    前言 jsp 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧.试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式.下面来一起看看详细的介绍: 1. url 链接后追加参数 ...

  3. jsp页面间的传值方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  4. java ee页面间怎么传值_jsp页面间常见的几种传值方式

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  5. java jsp 传值_jsp页面间的传值方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  6. js静态页面间的传值

    一:JavaScript静态页面值传递之URL篇 能过URL进行传值.把要传递的信息接在URL上. 例子: 参数传出页面Post.htm->   <input type="tex ...

  7. asp.net的几种页面间的传值方法

    今天TM群里有人问起关于页面传值的方法,又引发了一场讨论.看来这个还是有很多人关注的,因此我就我个人观点做了些总结,希望对大家有所帮助. 1.  使用QueryString变量 QueryString ...

  8. ASP.NET页面间的传值的几种方法

           asp.net  web  forms    给开发者提供了极好的事件驱动开发模式.然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的asp应用程序中,你能够通过 ...

  9. ASP.NET页面间数据传递的方法

    本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. 0.引言 Web页面是无状态的, 服务器对每一次请求都认为来自不同 ...

最新文章

  1. vim php代码规范
  2. JS数据类型与分支结构
  3. python求二维数组各行最大值_python+numpy按行求一个二维数组的最大值方法
  4. 微信中H5同层Video播放器接入教程
  5. 减少生活中的不确定性
  6. 基于python的FFT频率和振幅处理
  7. 三分钟玩转jQuery.noConflict()
  8. (干货满满!)session和cookie作用原理,区别(史上最详细)
  9. 培智学校计算机课教案,培智数学教案
  10. 情人节:找一个程序员当老公的10大好处
  11. linux 硬链接 软链接_Linux中的软链接–完整参考
  12. fer2013表情数据集
  13. (大家发表一下看法)微软研发智能系统 可通过电脑24小时监控员工
  14. java 阶乘算法_Java 实现阶乘算法
  15. android 导入 苹果手机,安卓手机文件怎么传到苹果手机
  16. 儒豹手机搜索发布2008年各频道关键词排行榜
  17. 洛雪音乐助手 0.18.2 — 音乐下载工具
  18. 根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
  19. ueditor 图片水印 php,[UEditor]上传图片自动添加水印
  20. vue嵌入app中——首次加载慢的动画

热门文章

  1. SSD 下的 MySQL IO 优化
  2. Linux管理员手册
  3. IIS服务器应用程序不可用的解决办法
  4. asp.net调用ajax实例
  5. oracle 判断字段相等,但类型不同引起的性能问题
  6. spring cloud 微服务的版本介绍与内部组件详解
  7. oracle数据库常用操作语句
  8. css几个居中的方法
  9. raiden_graph
  10. 世界杯来了!小程序赛事操作来一波~