返回顶部

收藏

HTML5本地存储localStorage使用示例

更多

支持JSON, Object, Date, String, Bool, Array序列化存储(localStorage),取值时自动反序列化

[JavaScript]代码

/**
* @name Util.storage, @cat Util/Storage, @function storage本地存储管理
* @example storage('the_storage'); Get the value of a storage.
* @example storage('the_storage', 'the_value'); Create a storage.
* @example storage('the_storage', null); delete one storage value
* @example storage(null); clean all storage
*/
Util.storage = $$.S = function(key, value){
    if(!Util.supportStorage()){
        Util.config('Storage_'+key, value);return;
    }
    if(arguments.length > 1 && 'string'===typeof key){
        if(null===value){
            localStorage.removeItem($$.app+'_'+key);
        }else{
            localStorage.setItem($$.app+'_'+key,Util.Serialize(value));
        }
    }else if('string'===typeof key){
        var value = Util.UnSerialize(localStorage.getItem($$.app+'_'+key));
        return value;
    }else if(null===key){
        localStorage.clear();
    }
    return this;//链式操作支持
}
Util.supportStorage = function(){
    return 'undefined' !==typeof window.localStorage;
}

[JavaScript]代码

Util.Serialize = function(obj){
    switch(obj.constructor){
        case Object:
            var str = '{';
            for(var o in obj) str += o + ':' + Util.Serialize(obj[o]) + ',';
            if(str.substr(str.length-1) == ',') str = str.substr(0,str.length -1);
            return str + '}';
            break;
        case Array:
            var str = '[';
            for(var o in obj) str += Util.Serialize(obj[o])+',';
            if(str.substr(str.length-1) == ',') str = str.substr(0,str.length -1);
            return str + ']';
            break;
        case String:  return '"'+obj.toString()+'"';  break;
        case Number:  return obj.toString();          break;
        case Boolean: return obj.toString();          break;
        case Date:    return '"'+obj.toString()+'"';  break;
        case Function:  break;
    }
};
Util.UnSerialize = function(obj){
    try{
        return eval('(' + obj + ')');
    }catch(e){
        throw new SyntaxError('Badly formed JSON string');
    }
};

标签:javascript,localStorage,html5

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. ToFishes 发表 2012-08-28 03:29:34 html5 localStorage
  2. Json 发表 2013-03-19 01:57:23 HTML5本地存储localStorage和sessionStorage总结
  3. 博主 发表 2015-06-23 05:43:07 弹幕、抽奖及投票
  4. dwqs 发表 2015-06-24 04:13:19 【译】Top 10:HTML5、JavaScript 3D游戏引擎和框架
  5. JeffJing 发表 2011-04-26 03:02:26 HTML5 CSS3 —— 一切都是浮云
  6. Nick Janssen 发表 2013-10-21 13:11:08 Building a 3D MMO Using WebSockets
  7. mzhou 发表 2013-10-29 14:57:40 ECMAScript 6之WeakMap
  8. 博主 发表 2014-07-19 10:14:19 开源HTML5游戏引擎Kiwi.js
  9. welpher 发表 2011-10-20 07:23:27 html5,初次见面
  10. yukin 发表 2012-11-05 03:28:41 使用HTML5 跨域共享特性解决AJAX跨域数据同步问题
  11. 小网 发表 2013-01-06 01:19:25 HTML5应用:setCustomValidity(message)接口
  12. tommy 发表 2015-11-17 06:01:56 Top 10:HTML5、JavaScript 3D游戏引擎和框架