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]
评论