简介

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

  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. 前后台Json的转换

    jsp:JSON.stringify(params):params:表示数组 servlet:Store store = (Store) JSONObject.toBean(JSONObject.fr ...

  2. PHP内存消耗

    由于变量占用的空间不一样,所以其消耗的内存大小也不一样,在PHP中我们可以通过使用“memory_get_usage”来获取当前PHP消耗的内存.但是根据操作系统.PHP版本以及PHP的运行方式可能输 ...

  3. 【NOIP2012】国王游戏

    这一次高精度完美地过辣好开心OvO,还get到了非常方便的高精度除小于10000的方法,这个是我自己脑出来的OvO 看来下午高精度傻逼得值qvq 原题: 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个 ...

  4. java的nio之:java的nio系列教程之serverSocketChannel

    Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.ServerSocketChannel类在 jav ...

  5. CUDA编程

    目录: 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. ...

  6. 让边框和文本一样高,不受line-height影响,可以使用padding,padding可以用于行内元素

    如果设置了,display:inline-block;边框大小至少和行高一样.这样就可能比文字高.

  7. 怎么提高OCR文字识别软件的识别正确率

    在OCR文字识别软件当中,ABBYY FineReader是比较好用的程序之一,但再好的识别软件也不能保证100%的识别正确率,用户都喜欢软件的正确率高一些,以减轻识别后修正的负担,很多用户也都提过这 ...

  8. python_Memcached

    一.Memcached 1.Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网 ...

  9. linux概念之内存分析

    linux内存总结 分析样本[root@-comecs ~]# free total used free shared buffers cached Mem: -/+ buffers/cache: S ...

  10. div圆角和颜色渐变的设置

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...