发布自 Kindem的博客,欢迎你们转载,可是要注意注明出处
在HTML5中,引入了两个新的前端存储特性:javascript
这二者很是类似,都是用来在前端保存必定量的数据,称为前端存储,可是这二者仍然存在必定区别:html
生命周期:前端
存储大小:html5
存储位置:java
存储内容类型:web
获取方式:shell
可见localStorage适合在前端存储长时间使用的数据, 而sessionStorage适合存储短时间使用、一次性的数据npm
另外这里要提一句,sessionStorage并非session:json
这里只介绍更加经常使用的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 ... });