JS--本地存储

基础认知

localstorage可以说是对cookie的优化,使用它可以方便在客户端存储数据,并且不会随着HTTP传输,说到这里就要跟sessionStorage 做一下区分!!

localStorage 和 sessionStorage 属性都允许在浏览器中存储 key/value 对的数据。但是localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。
不过他们的一些方法是相似的!!

使用
我们先讲sessionStorage的存储,获取与删除:
存储–Storage.setItem()

setItem() 作为 Storage 接口的方法,接受一个键名和值作为参数,将会把键名添加到存储中,如果键名已存在,则更新其对应的值。

获取–Storage.getItem()

getItem() 作为 Storage 接口的方法,接受一个键名(key name)作为参数,并返回对应键名的值

清除–clear()

clear() 是 Storage 接口的一个方法,调用它可以清空存储对象里所有的键值。

		const a=123;
        sessionStorage.setItem('a',a);
        /*这里面'a'是键名,a是值*/
        console.log(sessionStorage.getItem('a'));
        sessionStorage.clear('a');
        console.log(sessionStorage.getItem('a'));

12
1234

然后是localstorage的使用

这个跟sessionStorage的使用可以说是一模一样!
直接给例子:

		const a=123;
        localStorage.setItem('a',a);
        console.log(localStorage.getItem('a'));
        localStorage.clear('a');

1238

特殊情况

我们上面讲的要存储的值的数据类型都是比较简单的,而如果我们是要存储从接口中获取的数据并进行一些使用,可能还需要经过一些别的处理!!
这里强调下接口获取的数据一般是字符串形式!!
这里可以参考我前一篇文章:ajax的使用
这里我们调用接口的时候一般都会用JSON.parse()将数据由字符串转成json对象,不过这个没办法用localStorage进行存储,所以我们要进行以下调整:
用localStorage.setItem()正确存储JSON对象方法是:

  1. 存储前先用JSON.stringify()方法将json对象转换成字符串形式
  2. 后续要操作该JSON对象,要将之前存储的JSON字符串通过JSON.parse()先转成JSON对象再进行操作

不过这种方法化来化去很麻烦,所以直接按照我之前那篇文章直接存储字符串形式的就行了!

var xmlhttp;
if (window.XMLHttpRequest) {
  xmlhttp = new XMLHttpRequest();
} else {
  xmlhttp = new ActiveXObject("Microsoft XMLHTTP");
}

xmlhttp.open("GET", "https://recruit-exam.topviewclub.cn/api/recruit/getBannerList", true);

xmlhttp.send();
xmlhttp.onreadystatechange = function () {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   let responseText = JSON.parse(xmlhttp.responseText);
   /*这里setItem存储的是字符串,不能存json对象!!*/
    localStorage.setItem('msg', xmlhttp1.responseText);
        console.log(localStorage.getItem('msg'));
  }
}

89

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值