简介

  技术一般水平有限,有什么错的地方,望大家指正。

  sessionStorage、localStorage、cookie这三个是我们在浏览器端用来存储数据的,cookie使用起来较为繁琐以后进行总结,主要介绍一下sessionStorage和localStorage的用法。sessionStorage和localStorage都是在浏览器端用来存储数据的对象,它们也只在浏览器里有作用不会被发送到服务器端。

sessionStorage

  sessionStorage存活周期就是会话开始直到结束的这段时间,就是从我们打开一个浏览器窗口到关闭浏览器窗口的这段时间内都是有效的,无论是刷新开始重新打开页面当前的sessionStorage都是有效的。当我们在打开一个新窗口的时候就会重新再创建一个sessionStorage对象。

  sessionStorage在我们打开浏览器是被创建,它只能在当前的域名中有效,重新输入一个网址后就会重新创建一个新的sessionStorage对象,但是只要我们不关闭当前的窗口我们在重新输入原网址的时候,原来的sessionStorage仍然是可用的。

  例如:

  我们先打开百度,在console中输入sessionStorage.name = "百度",然后在地址栏中输入google的网址,我们发现google里面是没有sessionStorage.name这个属性的,我们在向url中输入百度的网址,sessionStorage.name仍然是存在的。我们每打开一个网址就会创建一个sessionStorage对象,并且该sessionStorage对象只在当前的域名内有效,当我们关闭浏览器时sessionStorage对象就会消亡。

  sessionStorage是一个对象所以我们就可以通过"."来创建属性和使用属性例如:

sessionStorage.name = "zt";
sessionStorage.age = 23
sessionStorage.name//zt

  sessionStorage同样也给我们提供了几个API来官方了一下我们的使用,我们常用的就是下面这几个:

  length:sessionStorage.length返回当前sessionStorage对象下面有几个属性。

  setItem:sessionStorage.setItem("_key","value")为sessionStorage添加一个属性并赋值,等同与sessionStorage._key = value。

  setItem:sessionStorage.getItem("_key")获取sessionStorage对象上的key属性的值,等同于sessionStorage._key。

  removeItem:sessionStorage.removeItem("_key")删除sessionStorage对象上的一个属性,等同于sessionStorage._key = null。

  clear:sessionStorage.clear()清空sessionStorage上面的所有的属性。

  sessionStorage.getItem()在一些情况下是不能被替代的,例如我们通过sessionStorage.setItem("key","isKey"),设置了一个key的属性,而sessionStorage原型上是有一个key方法的,如果我们sessionStorage.key的话就会去访问key方法,而通过sessionStorage.getItem("key")就可以访问到key属性,但是一定避免我们存储的属性名和原型上的方法名同名。

  sessionStorage只能用来存储字符串:

var arr = [1,2,3];
sessionStorage.data = arr;
sessionStorage.data//1,2,3

  我们想存储一个数组,虽然存进去了但是当我们取出来的时候,发现已经面目全非了,如果要把对象存储在sessionStorage上,首先要先对对象进行一个序列化为字符串的操作,使用时在进行反序列化:

var arr = [1,2,3];
sessionStorage.data = JSON.stringify(arr);
JSON.parse(sessionStorage.data)//[1,2,3]

  通常我们对sessionStorage的使用就是记录一个表单的信息。比如在填写一个复杂的表单时,用户可能会不经意间刷新了网页,这样填写的信息就白填了,通常我们利用sessionStorage来存储用户填写的信息,当用户发送表单后我们在清空信息,这样即使用户刷新了浏览器也可以保留住刚刚填写的信息。

localStorage

  localStorage在API上的使用上和sessionStorage是一致的。不同之处在于,localStorage不会消亡,只要创建了并且我们没有手动销毁(或者清除浏览器历史)就会一直存在于我们的浏览器中。每一个域名都会创建一个localStorage,当前域名只能访问自己的localStorage。localStorage是一直存在于本地的所以我们利用的较为多一些,最近在的项目中用了一次,就是保存用户对一个报表的排序设置,这样每次页面加载的时候从localStorage读取用户的配置,发送到服务器,按照这个顺序返回数据。博客园在写博文时候的自动保存也是利用的localStorage,灵活使用localStorage可以给用户带来极大的便利。

sessionStorage、localStorage简介的更多相关文章

  1. sessionStorage & localStorage & cookie

    sessionStorage & localStorage & cookie 概念 html5中的Web Storage包括了两种存储方式:sessionStorage和localSt ...

  2. session,cookie,sessionStorage,localStorage的区别及应用场景

    session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...

  3. 缓存session,cookie,sessionStorage,localStorage的区别

    https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...

  4. sessionStorage & localStorage in-depth

    sessionStorage & localStorage in-depth Web Storage API https://developer.mozilla.org/en-US/docs/ ...

  5. sessionStorage / localStorage

    var referurl = document.referrer; //上级网址 if(referurl.indexOf('address_order')>0){ //判断是否是从上一级地址跳转 ...

  6. H5的storage(sessionstorage&localStorage)简单存储删除

    众所周知,H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同 下面直接上代码,storage中的存储与删除: <!DOCTYPE ...

  7. 彻底弄清楚session,cookie,sessionStorage,localStorage的区别及应用场景(面试向)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_94 客户端状态保持是一个老生常谈的问题了,归根结底追踪浏览器的用户身份及其相关数据无非就是以下四种方式:session,cooki ...

  8. cookie sessionStorage localStorage 区别

    sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...

  9. 本地存储(cookie&sessionStorage&localStorage)

    好文章,最全面.就查它吧:https://segmentfault.com/a/1190000004556040 1.DOM存储:https://developer.mozilla.org/zh-CN ...

随机推荐

  1. HDU 2717 Catch That Cow --- BFS

    HDU 2717 题目大意:在x坐标上,农夫在n,牛在k.农夫每次可以移动到n-1, n+1, n*2的点.求最少到达k的步数. 思路:从起点开始,分别按x-1,x+1,2*x三个方向进行BFS,最先 ...

  2. php构造函数实例讲解

    PHP官网定义: 复制代码 代码如下: 构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用.当函数与类同名时,这个函数将成为构造函数.如果一个类没有构造函数, ...

  3. Oracle学习系列2

    SQL语法练习: 1,选择部门30中的所有员工 select * from emp where deptno=30; 2,列出办事员的姓名,编号和部门编号 select ename, empno, d ...

  4. 针对主流浏览器的CSS-HACK写法及IE常用条件注释

    一.通用区分方式: IE6.IE7能识别*,标准浏览器(如FF)不能识别*:IE6能识别*,但不能识别 !important:IE7能识别*,也能识别 !important:IE8能识别\0,不能识别 ...

  5. Java设计模式之简单工厂设计模式

    简单工厂将业务逻辑部分和界面逻辑部分分离开来,降低了界面逻辑和业务逻辑的耦合度,符合面向对象迪米特法则.下面以一个加法减法运算器为例,各位读者可以自行按照这种设计方式设计出一个小小的运算器. 1.业务 ...

  6. messagepcak 资料

    1,今天在hacknews上看到很多人对messagepack的争论.首先了解什么是MessagePack:MessagePack is a binary-based efficient object ...

  7. 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析

    作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  8. Knockout.js, Asp.Net MVC and Bootstrap 前端设计

    原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...

  9. ubuntu12.04+hadoop2.2.0+zookeeper3.4.5+hbase0.96.2+hive0.13.1伪分布式环境部署

    目录: 一.hadoop2.2.0.zookeeper3.4.5.hbase0.96.2.hive0.13.1都是什么? 二.这些软件在哪里下载? 三.如何安装 1.安装JDK 2.用parallel ...

  10. Hadoop数据传输工具:Sqoop

    Apache Sqoop(SQL-to-Hadoop) 项目旨在协助 RDBMS 与 Hadoop 之间进行高效的大数据交流.用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Had ...