felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

localStorage 使用总结 #117

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

一、localStorage 与 sessionStorage

HTML5 中,新加入了一个 localStorage 特性,这个特性主要是用来作为本地存储来使用的,解决了cookie 存储空间不足的问题(cookie 中每条 cookie 的存储空间为 4k),localStorage 中一般浏览器支持的是5M大小,这个在不同的浏览器中 localStorage 会有所不同。

可以把 localStorage 看成是前端的小型数据库, 而且是持久化的

sessionStorage 也是 HTML5 新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

二、localStorage 的优势与局限

2.1、 localStorage 的优势

2.2、 localStorage 的局限

localStoragesessionStorage 的唯一一点区别就是 localStorage 属于永久性存储,而 sessionStorage 属于当会话结束的时候,sessionStorage 中的键值对会被清空

三、localStorage 的使用

localStorage 的使用也是遵循同源策略的,所以不同的网站是不能直接共用相同的 localStorage

3.1、浏览器支持

首先在使用 localStorage 的时候,我们需要判断浏览器是否支持 localStorage 这个属性

if(!window.localStorage){
   console.log("浏览器支持localstorage");
   return false;
}else{
  return true;
}

3.2、localStorage 数据读写

var storage = window.localStorage;
// 写
storage['a'] = 1;
storage.b = 1;
storage.setItem('c', 3);
// 读
console.log(storage['a']);
console.log(storage.b);
console.log(storage.getItem('c'));

这里有三种对 localStorage 的读取,其中官方推荐的是 getItem\setItem 这两种方法对其进行存取

3.3 localStorage 的删除

var storage = window.localStorage;
// 写
storage['a'] = 1;
storage.b = 1;
storage.setItem('c', 3);

storage.removeItem('a'); // 删除单个
storage.clear(); // 删除所有