您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
javascript中cookie创建与存储
发布时间:2015-07-16 09:32:13编辑:雪饮阅读()
在js中cookie的操作与存储及清除cookie都与时间有关,我们只要把cookie过期时间进行有效的设置我们就可以控制它的存储了,下面我来给大家总结一下js中cookie的一些使用技巧
cookie默认失效是在关闭会话的情况下失效,但关闭会话失效仅仅限制于
当前浏览器失效,若是其它浏览器有创建同样的cookie则不会
设置cookie失效时间为7天之后:
我们设置的过期时间情况下,若是已经到了过期时间可以重新调整计算机的时间到未过期之前,那么又会重新出现cookie也就是说没有严格意义上的删除
只有强行的进行手工删除才可以严格意义上的删除cookie
我们自己设置的cookie过期时间只有到了真正的时间后才会过期,但这是一种没有严格意义上的删除cookie,严格意义上的绝对删除cookie是在设置cookie过期时间为当前时间之前的时间
如:
date.setDate((date.getDate()-7));
既然cookie过期时间设置为我们当前时间之前的时间就可以真正意义上的实现
对cookie的手工删除,那么我们可以使用new Date(0)设置为过期
我们不妨弹出下这个new Date(0)
获取的时间是1970年?
为什么呢?
而且时间格式也不是中国北京?
这两个问题就让雪饮个人博客来为您解答
首先第一个问题:为什么是1970年?
因为javascript在开创这个类即Date类的时候,他们的小组当时正值1970年,是以当时的格林时间为准的
哦,呵呵,一不小心就把两个问题一起解决了。。。。
那么既然new Date(0)所实例化出来的对象所具有的时间属性值是1970,这远远早于当前时间,那么cookie当然也是会被绝对性质上的删除掉的
下面我们再来看看domain属性在cookie中的作用
如下:
<script type="text/javascript">
var domain="www.gaojiupan.cn";
document.cookie="user="+encodeURIComponent("雪饮个人博客")+";domain="+domain;
alert(decodeURIComponent(document.cookie));
</script>
domain属性是对域名访问的限制,我们在这里建立了一个cookie并限制其访问限制在指定的这个域名www.gaojiupan.cn下,那么让我们看看当前脚本弹窗结果如何。
记得要清除掉之前的所有的cookie以免影响我们的分析
经过清除了所有cookie之后我们弹窗结果为:
为什么没有雪饮个人博客那个cookie值了呢?
这是因为我们目前直接在本地访问的结果,而我们创建这个cookie时domain属性给其限制为在www.gaojiupan.cn下才可以访问的,所以这里才会无法访问那个cookie的
那么现在我们解析并绑定域名到我们的测试的iis站点上试试吧
解析绑定完成,现在把我们的demo放进这个iis站点之下
并用火狐从该域名下访问:
ok,没有问题,成功访问
现在我们试试360浏览器的访问结果:
也是ok的
讲到这里突然想到一个问题,很抱歉,刚才忘了给大家讲一个小知识点
其实在火狐下cookie可以在客户端成功创建和访问
而在360(webkit内核)下是不可以的哦
webkit内核下只能够在服务器端创建并成功访问的
我们设置cookie建立域名之后会在浏览器中自动创建该字段
这里的域就是我们设置的域名
另外在创建在子域名下的cookie只能够在子域名下访问,其他子域名以及主域名、其它任意外域名都不可以访问的
最后在结束之前再补充点比较高深的小知识点
如下:
<script type="text/javascript">
document.cookie="user="+encodeURIComponent("雪饮个人博客")+";secure";
alert(decodeURIComponent(document.cookie));
</script>
我们新增了secure属性
这个字段一般是在银行等安全要求比较高的地方才使用的
他规定了只能在https的协议下才可以访问的
我们再来解析绑定一个域名来试试
好了,非常感谢光顾雪饮个人博客,下次再会
关键字词:cookie,创建,个人博客