客户端缓存cookie缓存和localstorage

1、微信公众号开发中使用cookie或者localstorage做用户登录的缓存都可以
遇到的问题:在使用localstorage的时候,微信调用第三方页面的时候,返回来处理逻辑的时候,localstorage保存的数据出现了丢失,这是有些手机导致的!但是使用cookie就不会导致这种情况发生

有些机型不能存储信息到localStorage中,或者是页面一旦关闭或微信退出之后,存储的信息也失效了。
百度上也有很多人吐槽这个问题,cookie和session都能解决。

使用localstorage

使用localStorage保存数据使用localStorage.setItem(key,value);
使用localStorage获取数据的时候使用的是localStorage.getItem(key);

  • 使用localStorage设置定时处理缓存,过期重新登录
function setLoginInfo(key,value){
    //var curTime = new Date().getTime();
    localStorage.setItem(key,value);
}
//获取缓存,24小时重新登录
function getLoginInfo(key){
    var data = localStorage.getItem(key);
    if(data!=null){
    	var dataObj = JSON.parse(data);
        if (new Date().getTime() - dataObj.time>24*60*60*1000) {
        	//session 已经失效了
        	localStorage.removeItem(key);
        	return "";
        }else{
            var dataObjDatatoJson = JSON.parse(dataObj.data)
            return dataObjDatatoJson;
        }
    }else{
    	window.location.href="login.html";
    }
} 

使用cookie进行保存

//设置cookie
function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

//取回cookie
function getCookie(c_name)
{
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 ""
}
  • cookie的使用示例
//设置cookie,有效期为365天
setCookie('cellphone','13456780000',365);

//取回,若cookie失效,将返回空
getCookie('cellphone');

当杀死微信进程或者清理垃圾或者手机重启的时候,cookie缓存的信息依然存在,但是当微信通过设置退出重新登录的时候缓存就又没了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值