bluemengcom 2019-06-27
在HTML5中,引入了两个新的前端存储特性:
这两者非常相似,都是用来在前端保存一定量的数据,称为前端存储,但是这两者仍然存在一定区别:
生命周期:
存储大小:
存储位置:
存储内容类型:
获取方式:
可见localStorage适合在前端存储长时间使用的数据, 而sessionStorage适合存储短期使用、一次性的数据
另外这里要提一句,sessionStorage并不是session:
这里只介绍更加常用的localStorage的使用,而sessionStorage的使用其实也类似
localStorage作为一个在HTML5中引入的特性,在IE6/7等一些低版本的浏览器中是无法被支持的,所以建议在使用localStorage之前先检查浏览器支持情况:
if (!window.localStorage) {
// 当浏览器不支持 localStorage ...
} else {
// 浏览器支持 localStorage ...
}localStorage的使用也很简单,在localStorage中,数据都是以键值对的形式存在,可以使用json对象的形式直接对localStorage中的键值对进行操作:
// 设置数据 localStorage.a = 'hello'; localStorage.b = 'zero'; // 读取数据 console.log(localStorage.a); console.log(localStorage.b);
就那么简单
但是这里要注意一点,存储在localStorage中的数据一定是以字符串形式存在的,所以当你存入/读取其他形式的数据时,需要进行类型转换才行:
// 存入 json 数据
localStorage.jsonTest = JSON.stringify({
a: 'hello',
b: 'zero'
});
// 读取 json 数据
console.log(JSON.parse(localStorage.jsonTest).a);
console.log(JSON.parse(localStorage.jsonTest).b);有很多js库提供了一系列简化localStorage并且提供跨平台操作的功能,使用它们可以更加轻易地使用localStorage,这里介绍一个js库——store.js
store.js 的一大优点就是他将为你自动进行类型转换,相当于你可以直接在 localStorage 中储存诸如 json 对象等类型的数据,这些对你来说是透明的
安装:
npm install store
API:
// 引入
let store = require('store');
// 设置数据
store.set('user', {
name: 'Kindem'
});
// 获取数据
let obj = store.get('user');
// 删除数据
store.remove('user');
// 删除所有数据
store.clearAll();
// 遍历键值对
store.each((value, key) => {
// do something ...
});