localstorage / sessionStorage

个人理解:

简单说,就是开发者用来把数据存在本地浏览器里,

如果想做保持登录状态的功能,就要用到这个了

localstorage:永久存在浏览器上,只要不手动清除就一直在,无论刷新还是关闭窗口

sessionStorage:临时存在浏览器里,在关闭窗口之前,数据都在。关了窗口就没了

用法:

// 保存 
localStorage.setItem(key,value) // 永久的
sessionStorage.setItem(key,value) // 临时的

// 读取
localStorage.getItem(key)
sessionStorage.getItem(key)

// 示例-存字符串:
localStorage.setItem('myKey','myvalue')

// 读取-字符串
localStorage.getItem('mykey') // 'myvalue'


// 示例-存对象(这个用JSON.stringify转一下再存)
localStorage.setItem('myKey',JSON.stringify({key1:value1,key2:value2}) )

在浏览器开发者工具里能查看当前的Storage,方便调试:

 Storage是区分地址的,必须 地址/端口 完全一致才可以读取

举个例子:A站的Storage,B站是读取不到的

过期时间:

"很遗憾,localstorage原生是不支持设置过期时间的,只能自己来封装一层逻辑来实现"

// 封装保存数据的方法,保存key/value的同时,加一个时间进去
function set(key,value){
  var curtime = new Date().getTime() //获取当前时间
  localStorage.setItem( key,JSON.stringify({val:value,time:curtime}) )
}

// 封装读取数据的方法,读取的时候,根据时间验证是否过期了
function get(key,exp)//exp是设置的过期时间
{
  var val = localStorage.getItem(key) //获取存储的元素
  var dataobj = JSON.parse(val); //解析json对象
  if(new Date().getTime() - dataobj.time > exp) // 判断 当前时间-创建时间 > 过期时间
  {
    // 过期了
    console.log("过期了"); 
    retur false
  }else{
    return val // 没过期,返回要取的值
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值