//html5本地存储类库
var storage = {
// key前缀,用于区分同一个项目中其它类库使用的缓存
prefix: "uid_",
/**
* 缓存本地数据
* @param key
* @param value
*/
setLocalItem: function (key,value) {
var dataType = this.getDataType(value);
var data = value;
switch (dataType) {
case "Array":
data = value.join(",");
break;
case "Object":
data = JSON.stringify(value);
break;
}
localStorage.setItem(this.prefix+key,data);
},
/**
* 获取指定key的本地缓存数据
* @param key
*/
getLocalItem: function (key) {
var value = localStorage.getItem(this.prefix+key);
return this.getFormatItem(value);
},
/**
* 删除指定key的本地缓存数据
* @param key
*/
removeLocalItem: function (key) {
localStorage.removeItem(this.prefix+key);
},
/**
* 清空本地缓存数据
*/
clearLocal: function () {
//localStorage.clear();
var keys = [];
var len = localStorage.length;
//遍历出所有key
for (var index=0; index<len;index++) {
var key = localStorage.key(index);
if (key == null) {
continue;
}
if (key.indexOf(this.prefix) == 0) {
keys.push(key);
}
}
for (var i=0;i<keys.length;i++) {
localStorage.removeItem(keys[i]);
}
},
/**
* 获取本地所有缓存数据
* @returns {{}}
*/
getLocal: function () {
var data = {};
var len = localStorage.length;
for (var index=0; index<len;index++) {
var key = localStorage.key(index);
if (key == null) {
continue;
}
if (key.indexOf(this.prefix) == -1) {
continue;
}
var value = localStorage.getItem(key);
data[key.replace(this.prefix,"")] = this.getFormatItem(value);
}
return data;
},
/**
* 缓存Session会话数据
* @param key
* @param value
*/
setSessionItem: function (key,value) {
var dataType = this.getDataType(value);
var data = value;
switch (dataType) {
case "Array":
data = value.join(",");
break;
case "Object":
data = JSON.stringify(value);
break;
}
sessionStorage.setItem(this.prefix+key,data);
},
/**
* 获取指定key的Session缓存数据
* @param key
*/
getSessionItem: function (key) {
var value = sessionStorage.getItem(this.prefix+key);
return this.getFormatItem(value);
},
/**
* 删除指定key的Session缓存数据
* @param key
*/
removeSessionItem: function (key) {
sessionStorage.removeItem(this.prefix+key);
},
/**
* 清空Session缓存数据
*/
clearSession: function () {
//sessionStorage.clear();
var keys = [];
var len = sessionStorage.length;
//遍历出所有key
for (var index=0; index<len;index++) {
var key = sessionStorage.key(index);
if (key == null) {
continue;
}
if (key.indexOf(this.prefix) == 0) {
keys.push(key);
}
}
for (var i=0;i<keys.length;i++) {
sessionStorage.removeItem(keys[i]);
}
},
/**
* 获取Session会话所有缓存数据
* @returns {{}}
*/
getSession: function () {
var data = {};
var len = sessionStorage.length;
for (var index=0; index<len;index++) {
var key = sessionStorage.key(index);
if (key == null) {
continue;
}
if (key.indexOf(this.prefix) == -1) {
continue;
}
var value = sessionStorage.getItem(key);
data[key.replace(this.prefix,"")] = this.getFormatItem(value);
}
return data;
},
/**
* 格式化数据
* @param value
* @returns {*}
*/
getFormatItem: function (value) {
var data = value;
if (this.isJsonString(value)) {
data = JSON.parse(value);
}
return data;
},
/**
* 获取数据类型
* @param value
* @returns {*}
*/
getDataType: function (value) {
if (typeof value == "object") {
if (typeof value.length == "number") {
return "Array";
}
return "Object";
}
return "String";
},
/**
* 判断是否是json字符串
* @param value
* @returns {boolean}
*/
isJsonString: function (value) {
try {
if (typeof JSON.parse(value) == "object") {
return true;
}
} catch(e) {
}
return false;
}
};
html5本地存储类库
猜你喜欢
转载自blog.csdn.net/tdcqfyl/article/details/81188362
今日推荐
周排行