发新话题
打印

javascript对localStorage和sessionStorage简单封装

javascript对localStorage和sessionStorage简单封装

说明:JsStorage对localStorage和sessionStorage进行封装操作
关于localStorage和sessionStorage的区别可以参考这篇文章
代码:
/*+==============================================
  + 我不只是一个程序员,我更希望用此创造价值
  + author:wuquanyao
  + email:wqynqa@163.com
  * version:1.0.0
  +==============================================*/
var storage=(function(){
    var Storage = function(type){
            this.storage = null;
                if(typeof('type') === 'undefined' || type === 'local')
                        this.storage = window.localStorage;
                else if(type === 'session')
                        this.storage = window.sessionStorage;
        }
        Storage.prototype.set=function(key, value){
                this.storage.setItem(key, escape(value));
        }
        Storage.prototype.get=function(key){
                return unescape(this.storage.getItem(key));
        }
        Storage.prototype.remove=function(key){
                this.storage.removeItem(key);
        }
        Storage.prototype.clear=function(){
                this.storage.clear();
        }
        Storage.prototype.key=function(index){
                return this.storage.key(index);
        }
        Storage.prototype.hasKey=function(key)
        {
                for(var i in this.storage){
                        if(i === key){
                                return true;
                        }
                }
                return false;
        }
        Storage.prototype.hasVal=function(value)
        {
                for(var i in this.storage){
                        if(unescape(this.storage) === value){
                                return true;
                        }
                }
                return false;
        }
        Storage.stringify = function(data){
                return JSON.stringify(data);
        }
        Storage.parse = function(data){
                return JSON.parse(data);
        }
        Storage.support = function(){
                if(window.localStorage && window.sessionStorage) return true;
                return false;
        }
   return Storage;
})(window);
使用:
1、第一步初始化JsStorage:
代码:
var storage = new storage('local');
注释:其中参数为local或session,不填则默认local,即使用localStorage储存
2、储存值:storage.set(key,value);
3、通过键获取值:storage.get(key);
4、通过键移除值:storage.remove(key);
5、清楚所以缓存:storage.clear();
6、通过索引获取键:storage.key(index);
注释:index为数字索引值
7、判读键是否存在:stoarge.hasKey(key);
8、判断储存值是否存在:storage.hasVal(value);
9、判断是否支持localStorage和sessionStorage:window.storage.support()
注释:支持则返回true,不支持返回false
10、序列化数据:window.storage.stringify();
11、反序列数据:window.storage.parse();
其他说明:
1、在处理数据时,可以通过window.storage.stringify()和window.storage.parse()进行序列化和发序列化,这样保持数据的原格式
2、可以不使用window.storage.stringify()和window.storage.parse()对数据进行操作,但得到的数据不是原来的数据格式
如:
(1):['a','b','c','d'],进行存储后,使用storage.get()方法得到数据,仍然是一维数组
(2):['a','b',['c','d'],['f','g']],进行储存后,使用storage.get()方法得到数据,也还是一维数组,并不是这里的二维数组

本内容部分或全部来源于这里,著作权归原作者所有,如有问题请联系我们处理。

TOP

发新话题