欢迎转载,转载请注明作者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:  });

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

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

expireDate = new Date();
expireDate.setTime( expireDate.getTime() + ( * * * ) ); $.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的,郁闷。

关于jQuery的cookies插件2.2.0版设置过期时间的说明的更多相关文章

  1. jquery 操纵 cookies 插件(1)

    当你浏览某网站时,你硬盘上会生产一个非常小的文本文件,它可以记录你的用户ID.密码.浏览过的网页.停留的时间等信息. 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应 ...

  2. angular中的$cookies和$cookieStore设置过期时间

    angular1.4及以上版本才支持$cookies. 项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊. $cookieStore.remove(&q ...

  3. 在使用jjwt时在配置文件中设置过期时间,取到的结果为0的原因

    在设置了过期时间后感觉没有起作用,打印日志查看了下为0,因为生成token的文件在一个公共模块中,而过期时间设置在服务模块 中的配置文件中. 原因是:没有为设置getter和setter方法 来自为知 ...

  4. echarts.js(图表插件)2.0版会导致 ZeroClipboard.js(复制插件)失效,3.0版未知。

    解决方法:ZeroClipboard.js先于echarts.js加载.

  5. redis5.0.0.版设置开机自启

  6. 网页换肤,模块换肤,jQuery的Cookie插件使用(转)

    具体效果如下: 第一次加载如下图: 然后点击天蓝色按钮换成天蓝色皮肤如下图: 然后关闭网页重新打开或者在打开另一个网页如下图: 因为皮肤用Cookie保存了下来,所以不会重置 具体的实现代码如下: & ...

  7. asp设置cookies过期时间

    Response.Cookies("user_name").Expires=Date+1 '指定cookie保存时间 保留COOKIES一个小时 Response.Cookies( ...

  8. 【译】Asp.Net Identity Cookies 格式化-中英对照版

    原文出处 Trailmax Tech Max Vasilyev: ASP.Net MVC development in Aberdeen, Scotland I've been reached out ...

  9. (转载)【TP5.0】设置session有效时长+修改默认存储路径

        //查看默认session存储路径:print_r(session_save_path());   \thinkphp\helper.php if (!function_exists('ses ...

随机推荐

  1. Java---网络蜘蛛-网页邮箱抓取器~源码

    刚刚学完Socket,迫不及待的做了这个网页邮箱抓取~~~ 现在有越来越多的人热衷于做网络爬虫(网络蜘蛛),也有越来越多的地方需要网络爬虫,比如搜索引擎.资讯采集.舆情监测等等,诸如此类.网络爬虫涉及 ...

  2. C_FORCE_ROOT linux环境变量设置

    nano /etc/profile     gedit 也可以 结尾追加 export C_FORCE_ROOT="true"

  3. 【原】ubuntu下Mysql的HA(corosync+pacemaker+drbd)

    一.前提准备: 1.OS:ubuntu 12.04 2.cat /etc/hosts: 127.0.0.1 localhost 192.168.153.154 ha1 192.168.153.155 ...

  4. [Hibernate] 注解映射例子

    Hibernate 注解(Hibernate Annotation) 是一种比较新的方式,通过在 java 简单类增加注解,来声明 java 类和数据库表的映射,作用和 xml 文件相似.hibern ...

  5. hdu 4403 枚举

    #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #inclu ...

  6. crawler4j:轻量级多线程网络爬虫

    crawler4j是Java实现的开源网络爬虫.提供了简单易用的接口,可以在几分钟内创建一个多线程网络爬虫. 安装 使用Maven 使用最新版本的crawler4j,在pom.xml中添加如下片段: ...

  7. winform 猜猜看 分类: WinForm 2014-08-21 14:12 267人阅读 评论(0) 收藏

    说明: 1>窗体应用程序. 2>一个窗体(Form1),一个按钮(btnStart),一个文本(labTime) 3>截图: 4>代码如下: using System; usi ...

  8. nodejs端口被占用。

    I had the same issue. I ran: $ ps aux | grep node to get the process id, then: $ sudo kill -9 follow ...

  9. 【Android - MD】之CardView的使用

    CardView是Android 5.0新特性--Material Design中的一个布局控件,可以通过属性设置显示一个圆角的类似卡片的视图. 1.CardView的属性: app:cardCorn ...

  10. mac下versions 提交提示 SVN Working Copy xxx locked

    终端进入工程目录,执行 find . | grep ".svn/lock" | xargs rm