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()方法得到数据,也还是一维数组,并不是这里的二维数组

[via]https://gitee.com/wuquanyao/JsStorage[/via]

评论

Popular Posts

如何提高情商(EQ)

地方门户网站项目可行性分析

快乐来自于做出「舍弃」的能力

2009年即将流行的牛逼语录:经典的我都无语了(转载)

小清新必须死

SolveigMM Video Splitter - 无损视频编辑工具(视频剪辑,合并等)

《挪威的森林》精彩篇章:永远记得我

不要再Best Regards了!英文Email四大问题

聪明处事72招

没有灵魂,只有交易——为何“苹果”会杀人