简介

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

  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. 4-2 光盘yum源搭建

    yum源默认是用网络作为yum源,在一些特殊情况下,比如教学.实验室等,不是所有的环境都可以联网 这种不能使用网络的情况下,可以使用光盘搭建yum源 我们知道,光盘包含了所有的rpm包,因此使用光盘搭 ...

  2. android中ListView_SimpleAdapter

    1.首先看下main_activity.xml.其实里面就放了一个ListView. <LinearLayout xmlns:android="http://schemas.andro ...

  3. JS 的线程、事件循环、任务队列简介

    JS 是单线程的,但是却能执行异步任务,这主要是因为 JS 中存在事件循环(Event Loop)和任务队列(Task Queue). 事件循环:JS 会创建一个类似于 while (true) 的循 ...

  4. tomcat的配置详解:[1]tomcat绑定域名

    转自:http://jingyan.baidu.com/article/7e440953dc096e2fc0e2ef1a.html tomcat的配置详解:[1]tomcat绑定域名分步阅读 在jav ...

  5. kuangbin_ShortPath S (POJ 3169)

    被cow类题目弄得有些炸裂 想了好久好久写了120多行 依然长跪不起发现计算约束条件的时候还是好多麻烦的地方过不去 然后看了看kuangbin的blog 都是泪啊 差分约束的方式做起来只要70多行啊炒 ...

  6. java定时框架:表达式设置

    Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y( ...

  7. java的nio之:java的nio系列教程之SocketChannel

    Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...

  8. 磁盘与目录的容量[转自vbird]

    磁盘与目录的容量 现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的. 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个 ...

  9. jsonp跨域js

    http://www.cnblogs.com/yuzhongwusan/archive/2012/12/11/2812849.html window.opener用法 http://www.cnblo ...

  10. 【转贴】Cortex系列M0-4简单对比

    转载网址:http://blog.sina.com.cn/s/blog_7dbd9c0e01018e4l.html 最近搞了块ST的Cortex-M4处理器,然后下了本文档.分享一下. 针对目前进入大 ...