iTakeo

localstorage(本地存储)简单封装。

将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.
2016/01/02 2 / /
标签:  暂无标签

评论回复

  1. 回复 匿名

    请问这样。store的length会自动增减吗

验证码: 1 + 3 =

回到顶部