Cookie 干货
Posted tizi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie 干货相关的知识,希望对你有一定的参考价值。
从前端开发看Cookie
Cookie是浏览器端的存储机制
存在意义:
为了解决“如何记住用户信息”而发明的:
当用户访问网页时,他的名字可以存储在cookie中
下次用户访问该页面时,cookie会“记住”他的名字
特点:
会话Cookie:即不设置过期时间,此时只要关闭浏览器Cookie就会消失,注意是关闭浏览器而不是关闭一个标签
持久Cookie:即设置了过期时间(expires),此时关闭浏览器,如果没有超过设置的过期时间则Cookie还会存在,直到过期
谷歌浏览器不能设置本地文件Cookie,IE、火狐都可以
只要浏览器关闭Cookie功能,所有Cookie功能都不会实现
设置Cookie:
document.cookie = "name = tizi"
其中可以添加上 path,不设置则默认当前页,及在上级页面不可以获取到Cookie,但是在下级页面可以(做了几个实验,不知道是不是绝对的):
如在file:///D:/MySite/test.html 下设置了Cookie,在 file:///D:/MySite/src/test.html 下也可以获取,反之就不可以了
但是,如果设置了 path = / ,上面的反过来就可以了:
如在file:///D:/MySite/test.html 下设置了Cookie,在 file:///D:/MySite/src/test.html 下也可以获取,反之也可以了
获取Cookie:
console.log(document.cookie)
更改Cookie:
document.cookie = "name = tiziChange"
删除Cookie:
document.cookie = "name = ; expires = Thu, 01 Jan 1970 00:00:00 UTC"
1 <html> 2 <button onclick="setC()">设置Cookie</button> 3 <button onclick="setCDate()">获取Cookie过期时间</button> 4 <button onclick="getC()">获取Cookie</button> 5 <button onclick="changeC()">更改Cookie</button> 6 <button onclick="delC()">删除Cookie</button> 7 <script> 8 // 设置 Cookie 9 function setC() 10 document.cookie = "name = tizi;" 11 12 // 例如设置 一个两天过期且 age = 20 的 cookie 13 function setCDate() 14 var date = new Date() 15 date.setTime(date.getTime() + 2*24*60*60*1000) 16 document.cookie = "age = 20; expires = " + date.toUTCString() 17 18 // 获取 Cookie 19 function getC() 20 console.log( document.cookie ) 21 22 // 更改 Cookie 23 function changeC() 24 document.cookie = "name = tiziChange;" 25 26 // 删除 Cookie, 要将 expires 设置成过去时间即可 27 function delC() 28 document.cookie = "name = ; expires = Thu, 01 Jan 1970 00:00:00 UTC" 29 30 </script> 31 </html>
其实我参考的就是W3School,为了方便自己记忆,就写了一下,嘎嘎~
以上是关于Cookie 干货的主要内容,如果未能解决你的问题,请参考以下文章