/**
* 存储localstorage
* @param {*} date_params localStorage名
* @param {*} date_val localStorage值
* @param {*} overtime_val localStorage过期时间,(以秒为单位)
*/
function setLocalStorage(date_params, date_val, overtime_val) {
var obj = new Object();
obj.val = date_val;
obj.starttime = new Date().getTime(); // 存入localStorage时的时间(以秒为单位)
obj.overtime = overtime_val;
obj = JSON.stringify(obj)
localStorage.setItem(date_params, obj);
}
/**
* 获取localSorage值并判断localStorage是否过期
* @param {*} date_params 获取localStorage值的参数名
* @returns 判断时间差
*/
function getLocalStorage(date_params) {
var a = localStorage.getItem(date_params);
if (!a) { // 如果不存在该localStorage,直接返回false
return false;
} else {
var obj = JSON.parse(a);
var b = new Date().getTime()
var c = parseInt((b - obj.starttime) / 1000); // 当前时间与之前存储的时间的差(秒)
// console.log(c);
if (c >= obj.overtime) { // 当两者时间差大于或者等于存入localStorage所给的overtime(多少秒后过期)时,返回false
return false;
} else { // 如果localstorage没有过期,则直接返回该值
return obj.val;
}
}
}
// 测试
setLocalStorage('form_id', 'res.data.form_id', 10); // 保存一个10秒后过期的locastorage
var index = 10;
// 用一个定时器来计算是否10秒后就过期
var inter = setInterval(function(){
if(index >= 0) {
console.log(index--);
}else{
console.log(getLocalStorage('form_id')); // 有值则不过期 可用,false则为过期
localStorage.removeItem('form_id'); // 过期则清除掉localstorage
clearInterval(inter);
}
},1000);