将HTML5本地存储简单的封装了下,方便使用。
设置
//设置 store.set('user','张三'); //可以传入数组 store.set('list',[1,2,3,4]); //还可以传入一个JSON store.set('user',{ key : 10, key1 : 20 });01.
02.
03.
04.
05.
06.
07.
08.
09.
获取
//获取 store.get('user'); //如果存储的是数组 store.get('user')[0]; //如果存储的是JSON store.get('user').key;01.
02.
03.
04.
05.
06.
删除
//删除 store.remove('user'); //第二个参数不写的时候,默认也是删除 store.set('user'); //清除所有 store.clear();01.
02.
03.
04.
05.
06.
其他操作
//存储的个数 store.length(); //获取第几个 store.key (i); //循环所有已经存储的数据 store.each(function(k,v){ console.log ( k + '==' + v ); }); //判断本地存储是否可用 store.enabled; if(!store.enabled) alert('当前本地存储不可用!');01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
源码如下:
;(function(w){ w.store = {}; store.enabled = false; store.set = function(k,v){ if( v === undefined ) {return store.remove(k) }; w.localStorage.setItem(k,JSON.stringify(v)); }; store.length = function(){ return w.localStorage.length; }; store.key = function(i){ return w.localStorage.key(i); }; store.get = function(k){ return JSON.parse(w.localStorage.getItem(k)); }; store.remove = function(k){ w.localStorage.removeItem(k); }; store.clear = function(){ w.localStorage.clear(); }; store.each = function(fn){ for (var i = 0; i < store.length; i++){ fn.call(this,store.key(i),JSON.parse( w.localStorage.getItem( store.key(i) )) ); }; }; try { var testKey = '__testEnabled__'; store.set(testKey,testKey); if (store.get(testKey) == testKey) { store.enabled = true } store.remove(testKey); } catch(e) { store.enabled = false }; })(window);01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
请问这样。store的length会自动增减吗
@匿名 会的