浅谈cookie 博客分类: JavaScript基础
首先,我们要弄明白cookie是什么。例如,用户第一次访问网站时已经注册了用户名,当他再次访问时,可以用他的名字问候他,欢迎他再次访问该网站;从用途角度去看,cookie就是这个网站用于存储类似信息的文件;从JS的角度去看它就是一些存在客户端的计算机中的字符串;
Cookie在创建时可以设置为6个部分name(名称)、value(值)、expires(过期时间)、path(路径)、domin(域)、secure(安全性);后4个是可选的,最常用的是前三个;
在浏览器的控制台下(以chrome为例)就可以设置cookie
document.cookie = "username=Wahaha";
上面的代码设置了一个cookie,名称为username,值为Wahaha;这样设置的cookie在用户关闭浏览器后就会过期,如果希望cookie存在的时间更长的话就要用到第三个部分expires来设置过期时间了,如下所示:
var expireDate = new Date(); expireDate.setDate(expireDate.getDate()+10); document.cookie="username=Wahaha;expires=" "+ expireDate.toGMTString() +" ;"
在上面的代码中,第一行获取了当前时间,第二行设置时间为10天后,第三行把过期时间写入cookie;这样就可以实现cookie较长时间的保存了。需要注意的是,不设置过期时间的cookie会暂时存在内存中,而设置了过期时间的cookie会存在硬盘中。
其他的三部分不太常用但仍需我们了解:
cookie的用途我们已经知道,那如果没有路径的话,在同一个域中,如果两个站点都有一个MyCookie的cookie,那么设置或读取的时候就会出现问题,为了避免这种情况发生就可以用path(路径)进行一些限制。
那么,利用path(路径)通过两个不同的路径访问某一个cookie,该怎么办?
比如:有一个联机商店www.mywebsite.com/mystore;该商店还有两个子目录/Books和/Foods,在/Books和/Foods目录下设置的cookie无法互相访问但我们的cookie如果是只设置在/mystore下,无论是/Books和/Foods,还是/mystore就都可以访问了。如下:
document.cookie="username=Wahaha;expires=Tue, 20 Sep 2016 00:00:00 "+“;path=/mystore;";
关于域,默认情况下cookie仅用于设置它的域上的页面,也就是说一个域名下设置的cookie,不能在另一个域名下访问。还有secure(安全性),这只是一个布尔值,设置为true则cookie激发送给尝试使用安全通道检索它的服务器,而设置为false则不考虑安全性。
如果你想在浏览器中查看一个页面中的cookie(以chrome为例)你只须在console控制台下输入:
console.log(document.cookie)//或用alert()都可以;
便可查看当前页面的cookie,也可以在控制台的application按钮下的cookie文件下查看。
推荐阅读
-
用object( )方法实现非构造函数的继承 博客分类: JavaScript基础 JavaScript基础
-
JavaScript中保留小数与取整数 博客分类: JavaScript基础 javascript
-
浅谈cookie 博客分类: JavaScript基础
-
字符与字符编码的相互转换 博客分类: JavaScript基础 JavaScript
-
码云提交代码过程 博客分类: html基础 html
-
浏览器常用对象简介 博客分类: JavaScript基础 浏览器基础
-
html中引入外部文件 博客分类: html基础 html
-
三种css选择器的单独和联合作战 博客分类: css基础 htmlcss
-
那些年,我们错过的JavaScript知识点(二) 博客分类: JavaScript基础
-
码云提交代码过程 博客分类: html基础 html