H5-locaStorage解析

时间:2022-07-25
本文章向大家介绍H5-locaStorage解析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

H5-locaStorage解析

我们先说说localStorage是做什么用的 用来存取数据,是一种缓存结构,说到缓存我们之前不是有cookie了吗,为什么还要用localStorage? 我们从下面的例子来看看把

浅谈cookie

  • cookie的缺点:
    1. 每次ajax向后台请求数据的时候,都会朝后端发送所有cookie
    2. cookie存储的大小有限制,只有4kb;

浅谈localStorage

  • 往localStorage中存储东西
	localStorage.name = "zhangsan";
	localStorage.setItem("age", 18);

上述的两种方式都可以往localStorage中存值

  • 我们如何取存在localStorage中的值呢
 console.log(localStorage.name);
 console.log(localStorage.getItem("age"));

也可以获取到

  • 我们再来看看删除localStorage中的某一项值
	localStorage.removeItem("age");

移除了age后,就只剩name了

深入解析localStorage

特点

  1. ajax发送数据的时候不会带有localStorage存的值
  2. localStorage存的值都是以字符串的方式来存的
  3. localStorage能存的大小在5m左右
  4. localStorage只能在相同域中使用

先看一下第二个特点,只能存入字符串

	localStorage.arr = arr;
    localStorage.obj = obj;
    console.log(localStorage.arr);
    console.log(localStorage.obj);

从控制台,我们可以看到localStorage中存入和我们想象的并不太一样 再看看打印结果

从上述现象中我们可以找到以下特点:

  • 存入的数组变成了散列的值
  • 存入的对象被调用了Object.prototype.toString()方法,返回了一个对象的类型

那我们如何向localStorage中存入对象和数组呢

	localStorage.arr = JSON.stringify(arr);
    localStorage.obj = JSON.stringify(obj);
    console.log(JSON.parse(localStorage.arr));
    console.log(JSON.parse(localStorage.obj))

我们根据localStorage的特点,存入json的字符串即可,使用的时候再转义回来即可

浅谈sessionStorage

  • sessionStorage在使用上和localStorage基本上一样

cookie, loaclStorage,sessionStorage的区别

  • cookie和localStorage做比较

项目

大小限制

是否往后台发送数据

存取特点

只能在同一域下使用

过期时间

cookie

4kb

都可以存

超过设置的时间过期

loaclStorage

5M

只能存字符串

可以存很久,窗口关闭还在

sessionStorage

2M

只能存字符串

一个会话的时间,窗口关闭消失

我们在谈谈什么是同一个域

同一个协议, 同一个域名, 同一个端口 www.baidu.com这不是一个域,因为不是一个域名 http://www.baidu.comhttps://www.baidu.com 也不是同一个域,因为协议不一样