一、通常我们在存储数据的方式有三种
cookie sessionstorage localstorage ,那么这三种数据的存储又有什么关系呢?让我们一起来看看吧
cookie:保存cookie值:
VAR dataCookie='110'; document.cookie = 'token' + "=" +dataCookie;
获取指定名称的cookie值
function getCookie(n am e) { //获取指定名称的cookie值 // (^| )name=([^;]*)(;|$),match[0]为与整个正则表达式匹配的字符串,match[i]为正则表达式捕获数组相匹配的数组; var arr = document.cookie.match(new RegE xp ("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null) { console. LOG (arr); return unesca PE (arr[2]); } return null; } var cookieData=getCookie('token'); //cookie赋值给变量。
设置cookie过期时间
function setTime() { //存储cookie值并且设置cookie过期时间 var date\=new Date(); var expiresDays\=10;//设置十天过期 date.setTime(date.getTime()+expiresDays\*24\* 360 0\*1000); document.cookie\="userId=828; expires="+date.toGMTString(); console.log(document.cookie,'存储cookie值并且设置cookie过期时间'); } setTime();
删除cookie
function delCookie(cookieName1) { //删除cookie var date2\=new Date(); date2.setTime(date2.getTime()\-10001);//把时间设置为过去的时间,会自动删除 document.cookie\= cookieName1+"=v; expires="+date2.toGMTString(); console.log(document.cookie,'删除cookie'); } delCookie('userId');
localStorage和sessionStorage:localStorage和sessionStorage所使用的方法是一样的,下面以sessionStorage为栗子:
var name='sessionData'; var num=120; sessionStorage.set IT em(name,num);//存储数据 sessionStorage.setItem('value2',119); let dataAll=sessionStorage.valueOf();//获取全部数据 console.log(dataAll,'获取全部数据'); var dataSession=sessionStorage.getItem(name);//获取指定键名数据 var dataSession2=sessionStorage.sessionData;//sessionStorage是js对象,也可以使用key的方式来获取值 console.log(dataSession,dataSession2,'获取指定键名数据'); sessionStorage.remov ei tem(name); //删除指定键名数据 console.log(dataAll,'获取全部数据1'); sessionStorage.clear();//清空缓存数据:localStorage.clear(); console.log(dataAll,'获取全部数据2');
三者的异同:
上面的使用方式说好了,下面就唠唠三者之间的区别,这个问题其实很多大厂面试的时候也都会问到,所以可以注意一下这几个之间的区别。
生命周期:
cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效
localStorage:除非被手动清除,否则将会永久保存。
sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。
存放 数据大小:
cookie:4KB左右
localStorage和sessionStorage:可以保存5MB的信息。
http请求:
cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
localStorage和sessionStorage:仅在客户端(即浏览器)中保存,不参与和 服务器 的通信
易用性:
cookie:需要程序员自己封装, 源 生的Cookie接口不友好
localStorage和sessionStorage:源生接口可以接受,亦可再次封装来对Object和Array有更好的支持
应用场景:
从安全性来说,因为每次http请求都会携带cookie信息,这样无形中浪费了 带宽 ,所以cookie 应该 尽可能少的使用,另外cookie还需要指定作用域,不可以跨域调用,限制比较多。但是用来识别用户登录来说,cookie还是比st PR age更好用的。其他情况下,可以使用storage,就用storage。
storage在存储数据的大小上面秒杀了cookie,现在基本上很少使用cookie了,因为更大总是更好的,哈哈哈 你们 懂得。
localStorage和sessionStorage唯一的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息。localStorage可以用来夸页面传递参数,sessionStorage用来保存一些临时的数据, 防 止用户刷新页面之后丢失了一些参数。
浏览器支持情况:
localStorage和sessionStorage是ht ML 5才应用的新特性,可能有些浏览器并不支持,这里要注意。
cookie的浏览器支持没有找到,可以通过下面这段代码来判断所使用的浏览器 是否 支持cookie:
if(navigator.cookieEnabled) { alert("你的浏览器支持cookie功能");//提示浏览器支持cookie } else { alert("你的浏览器不支持cookie");//提示浏览器不支持cookie }
复制代码数据存放处:Cookie、localStorage、sessionStorag e数 据存放处
番外:各浏览器Cookie大小、个数限制。
总结
到此这篇关于数据存储的三种方式 cookie sessionstorage localstorage 异同的 文章 就介绍到这了,更多相关数据存储 cookie sessionstorage localstorage 内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
总结
以上是 为你收集整理的 浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同 全部内容,希望文章能够帮你解决 浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同 所遇到的问题。
如果觉得 网站内容还不错, 推荐好友。
查看更多关于浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同的详细内容...