localStorage与sessionStorage区别,这两个单词比较像,但是区别还是挺大的,它们既有相同点,又有不同点.

511 阅读2分钟

一.相同点

  1. 作用一致 : 用于存储数据
  2. 都是只能存储字符串类型数据(上限5MB)
  3. localStorage和sessionStorage只能存储字符串类型,对于复杂的对象 可以使用ECMAScript提供的JSON对象的stringify和parse来处理

二.不同点

1.存储方式不同

  • localStorage : 硬盘存储 (永久存储,页面关闭还在,存在硬盘里)
  • localStorage:生命周期是永久,储存的信息是永远不会消失的,除非你自己主动清除localStorage信息。
  • sessionStorage :内存存储 (临时存储,页面关闭了就消失了)
  • sessionStorage仅在当前会话下生效,当你关闭页面或浏览器后你存储的sessionStorage数据会被清除。 2.各自的使用方法不同

sessionStorage使用方法

  • 第一个参数是保存的变量名,第二个是变量的值

    sessionStorage.setItem('sname', 'session');

  • 获取sessionStorage的数据

    sessionStorage.getItem('sname');

  • 删除某个sessionStorage的数据

    sessionStorage.removeItem('sname');

  • 清除所有保存的sessionStorage数据

    sessionStorage.clear();


localStorage使用方法

1、第一个参数是保存的变量名,第二个是变量的值

localStorage.setItem('lname', 'local');

2、获取localStorage的数据

localStorage.getItem('lname');

3、删除某个localStorage的数据

localStorage.removeItem('lname');

4、清除所有保存的localStorage数据

localStorage.clear();

三.可在浏览器的控制台中查看localStorage储存的数据:

image.png

四.清除localStorage的方法:

1.代码删除: localStorage.clear()
2.或者直接:

image.png

五.作用域不同

image.png

  • localStorage只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据。
  • sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。

六.生存期不同

  1. localStorage理论上来说是永久有效的,即不主动清空的话就不会消失,即使保存的数据超出了浏览器所规定的大小,也不会把旧数据清空而只会报错。但需要注意的是,在移动设备上的浏览器或各Native App用到的WebView里,localStorage都是不可靠的,可能会因为各种原因(比如说退出App、网络切换、内存不足等原因)被清空。
  2. sessionStorage的生存期顾名思义,类似于session,只要关闭浏览器(也包括浏览器的标签页),就会被清空。由于sessionStorage的生存期太短,因此应用场景很有限,但从另一方面来看,不容易出现异常情况,比较可靠。

七.应用场景不同

  • localStorage:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。每天 , 我们进入某个网页 , 天天访问同一个网页 , 不需要输入账号密码 , 这是因为localStorage发挥了作用。
  • sessionStorage:敏感账号一次性登录 ,适合游客访问某一个网页。