var mystorage = window.localStorage; //获取localStorage对象
var cacheType = "storage"; //默認h5本地緩存
/**
* localStorage本地緩存
* add by songxuan 2018-7-10 14:37:47
**/
var localstorage = {
init: function () {
//判断浏览器是否支持缓存
if ('localStorage' in window && window['localStorage'] !== null) {
//h5緩存
cacheType = 'storage';
}
else if (navigator.cookieEnabled) {
//cookie緩存
cacheType = 'cookie';
}
else {
alert("您的浏览器不支持本地缓存,可能导致某些功能无法使用!");
return;
}
},
set: function (key, value) {
//初始化
localstorage.init();
try {
if (cacheType == "storage") {
//存储到localstorage
mystorage.setItem(key, value);
}
else {
//否则存储到cookie
mycookie.set(key, value, 1);
}
}
catch (ex) {
alert(ex.message);
}
},
get: function (key) {
localstorage.init();
let result = ""; //默认返回结果
try {
if (typeof (mystorage.getItem(key)) != "undefined") {
//优先读取localstorage
result = mystorage.getItem(key);
}
else if (typeof (mycookie.get(key)) != "undefined") {
//如果没有,就读取cookie
result = mycookie.get(key);
}
}
catch (ex) {
alert(ex.message);
}
return result;
},
remove: function (key) {
//检查浏览器是否支持缓存
localstorage.init();
try {
//清除指定localStorage
mystorage.removeItem(key);
//清除指定Cookie
mycookie.remove(key);
}
catch (ex) {
alert(ex.message);
}
},
clear: function () {
//检查浏览器是否支持缓存
localstorage.init();
try {
//清除所有localStorage
mystorage.clear();
}
catch (ex) {
alert(ex.message);
}
}
}
/**
* Cookie存取
**/
var mycookie = {
set: function (c_name, value, expiredays) {
//存储到Coookie
var exdate = new Date()
exdate.setDate(exdate.getDate() + expiredays)
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
},
get: function (c_name) {
//读取Cookie
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=")
if (c_start != -1) {
c_start = c_start + c_name.length + 1
c_end = document.cookie.indexOf(";", c_start)
if (c_end == -1) c_end = document.cookie.length
return unescape(document.cookie.substring(c_start, c_end))
}
}
return ""
},
remove: function (c_name) {
//清除指定cookie
mycookie.set(c_name, "", -1);
},
clear: function () {
//清除所有cookie
let cookies = document.cookie;
let cookielist = cookies.split(";");
for (let i = 0; i < cookielist; i++) {
var firstCookie = cookielist[i].split("=");
mycookie.set(firstCookie[0], "", -1);
}
}
}
新手上路,只是为了项目方便写的,如有错误,请大神指正。