Web本地存储

Web本地存储

说明:
对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage
sessionStorage(临时存储):为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重载
localStorage(永久存储):与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在
Cookie :
作用

cookie是纯文本,没有可执行代码。存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)

特征
1.不同的浏览器存放的cookie位置不一样,也是不能通用的。

2.cookie的存储是以域名形式进行区分的,不同的域下存储的cookie是独立的。

3.我们可以设置cookie生效的域(当前设置cookie所在域的子域),也就是说,我们能够操作的cookie是当前域以及当前域下的所有子域

4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样,一般为20个。

5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样,一般为4KB。

6.cookie也可以设置过期的时间,默认是会话结束的时候,当时间到期自动销毁

localStorage 和 sessionStorage:
sessionStorage 和 localStorage 的用法基本一致,引用类型的值要转换成JSON

  1. 保存数据到本地
 const info = {
        name: 'Lee',
        age: 20,
        id: '001'
    };
    sessionStorage.setItem('key', JSON.stringify(info));
    localStorage.setItem('key', JSON.stringify(info));
  1. 从本地存储获取数据
  var data1 = JSON.parse(sessionStorage.getItem('key'));
    var data2 = JSON.parse(localStorage.getItem('key'));
  1. 本地存储中删除某个保存的数据
   sessionStorage.removeItem('key');
    localStorage.removeItem('key');
  1. 删除所有保存的数据
  sessionStorage.clear();
    localStorage.clear();
  1. 监听本地存储的变化

Storage 发生变化(增加、更新、删除)时的 触发,同一个页面发生的改变不会触发,只会监听同一域名下其他页面改变 Storage

window.addEventListener('storage', function (e) {
        console.log('key', e.key);
        console.log('oldValue', e.oldValue);
        console.log('newValue', e.newValue);
        console.log('url', e.url);
    })

localStorage/sessionStorage的优势

1.localStorage拓展了cookie的4K限制
2.localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
localStorage/sessionStorage的局限

1.浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性
2.目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
3.localStorage在浏览器的隐私模式下面是不可读取的
4.localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
5.localStorage不能被爬虫抓取到
localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

你可能感兴趣的:(JAVA知识)