美文网首页
localStorage、sessionStorage、cook

localStorage、sessionStorage、cook

作者: AAA_si | 来源:发表于2022-09-22 14:24 被阅读0次

先看各个缓存的使用,后面介绍优缺点和不同

localStorage
// 创建
localStorage.setItem("name","张三")
// 读取
localStorage.getItem("name")
// 清除制定
localStorage.removeItem("name")   // undefined 
// 清除全部
localStorage.clear()   // undefined
// 不常用  获取当前storage中的元素数目
localStorage.Length()
// 不常用  获取键名
localStorage.key(0)    // 0===获取第一个键名
sessionStorage
// 创建
sessionStorage.setItem("name", "李四");
// 读取
sessionStorage.getItem("name")
// 清除制定
sessionStorage.removeItem("name")   // undefined 
// 清除全部
sessionStorage.clear()   // undefined
// 不常用  获取当前storage中的元素数目
sessionStorage.Length()
// 不常用  获取键名
sessionStorage.key(0)    // 0===获取第一个键名
cookie
// 设置cookie
setCookie(name,value,expiredays){//设置时间为天为过期单位
   var exdate=new Date();
   exdate.setDate(exdate.getDate()+expiredays);
   document.cookie=name + '=' + escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
},
// 获取cookie
getCookie(name){
    var start = document.cookie.indexOf(name+'=')
    var end = document.cookie.indexOf(';',start)
    if(end=-1){
      end = document.cookie.length
    }
    return unescape(document.cookie.substring(start,end))
}

总结

一、共同点
1. 都是保存在浏览器端
二、不同点(特点)
1.cookie有储存4k的数据限制;
2.cookie的数据在请求头,导致流量增加;
3.localStorage生命周期:持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的;
4.localStorage存储的信息在同一域中是共享的;
5.localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡;
6.sessionStorage和localStorage 都受到同源策略限制;
7.sessionStorage比localStorage更严苛一点,除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下。
8.sessionStorage当会话结束(当前页面、标签页关闭的时候,自动销毁);
9.sessionStorage和localStorage 据说是5M. (目前没有超过限制的);
10.sessionStorage和localStorage只能通过客户端操作,cookie既可以通过客户端操作又可以通过服务端操作

个人原因(cookie用的少,所以单独学习下)

cookie

单独提出来cookie。照搬别人写的。
设置cookie的方式,及可以添加的参数
一、expires(过期时间)

过了过期时间,浏览器就会删除该cookie,想要删除cookie,只需要把它过期时间设置成过去的时间即可(如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。)

例如:
document.cookie = "username=linda; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/" // 设置cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT" // 删除cookie

一、path(路径)
(值可以是一个目录,或者是一个路径。)

如果cc.com/test/index.html建立了一个cookie,那么在cc.com/test/目录里的所有页面,以及该目录下面任何子目录里的页面都可以访问这个cookie。因此在cc.com/test/test2/test3里的任何页面都可以访问cc.com/test/index.html建立的cookie。若cc.com/test/若想访问cc.com/test/index.html设置的cookie,需要把cookie的path属性设置成“/”。
在指定路径的时候,凡是来自同一服务器,URL里有相同路径的所有WEB页面都可以共享cookies。

3.domain(主机名,是指同一个域下的不同主机)
例如:www.baidu.commap.baidu.com就是两个不同的主机名。默认情况下,一个主机中创建的cookie在另一个主机下是不能被访问的,但可以通过domain参数来实现对其的控制:document.cookie = "name=value;domain=.baidu.com"
这样,所有*.baidu.com的主机都可以访问该cookie。
可以用此特性实现

相关文章

网友评论

      本文标题:localStorage、sessionStorage、cook

      本文链接:https://www.haomeiwen.com/subject/ofjysrtx.html