关于jQuery的cookies插件2.2.0版设置过期时间的说明

欢迎转载,转载请注明作者RunningOn

 jQuery应该是各位用JavaScript做web开发的常用工具了,它有些插件能非常方便地操作cookie。

不过非常让人郁闷的是,网上几乎所有人对于这些插件所做的关于cookie过期/失效时间的说明都是含混的或不正确的。我被这玩意搞得实在不行了,去看了其中两个插件的源代码终于明白了是怎么一回事。为避免更多人中招,我就写下我RunningOn个人对这些cookie插件的理解。

首先要说明的是cookie插件国内主要流行的有两个,一个是早在2006年的不知道是什么版本号的叫cookie的插件,另一个是cookies 2.2.0版,注意后者的名字比前者多一个s,国内主要用的是后者。前者早已停止维护(或者说代码很少不需要维护)而且其下载链接已经从官网撤除了,后者的下载链接则到处是。你下的十有八九是后者,官方下载在:http://code.google.com/p/cookies/downloads/list

在我写这日志之前,网上的对jQuery操作cookies的插件的使用介绍几乎都是不正确的,主要是对于过期时间的设置不对(如果我错怪了谁,那我先道个歉)。

Cookies插件使用方法:

    1. 不用说,首先你得下载jQuery及Cookies插件。

    2. 在网页的<body>前加上:

<script type="text/javascript" src="http://513394217.blog.163.com/blog/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="http://513394217.blog.163.com/blog/jquery.cookies.2.2.0.min.js"></script>

 src=后面的那一长串就是下载的jQuery和Cookies插件的文件名,如果你和我不一样就改改。

 3. 如何添加/修改cookie并设定过期时间:

$.cookies.set('cookie_id', 'cookie_value', { hoursToLive: 100 });

上面是添加或修改一个cookie,并将其过期/失效时间设定在100小时之后,注意大括号是必须的。

    过期失效时间还有另外一个设置方式,指定一个绝对时间:

expireDate = new Date();
expireDate.setTime( expireDate.getTime() + ( 100 * 60 * 60 * 1000 ) );

$.cookies.set('cookie_id', 'cookie_value', {expiresAt:expireDate});

expireAt参数精确到毫秒。大括号里还可以添加path, domain, secure等参数,这里不做介绍。如果hoursToLive和expiresAt都指定了,则以expiresAt为准。

  4. 如何获取cookie

$.cookies.get('cookie_id'); 

 5. 如何删除cookie

$.cookies.del('cookie_id'); 

常用的就是这么多了。cookies有更高级的用法,比如能将数组一口气全写入cookie,但不在本文的介绍范围了。

    最后再提醒一下,如果你看到其它地方介绍jQuery操作cookie时用的这样语法$.cookie.set('cookie_id', 'cookie_value', 7)或者$.cookie.set('cookie_id', 'cookie_value', {expires: 7}),都是针对插件cookie而不是cookies的,更令人烦躁的是有些这样的文章后面附的下载链接却是cookies的,郁闷。

posted @ 2016-01-15 10:59  简单-是美  阅读(1391)  评论(0编辑  收藏  举报