`
llyzq
  • 浏览: 585463 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

学习笔记: JavaScript/JQuery 的cookie操作

阅读更多

转自:http://blog.csdn.net/barryhappy/archive/2011/04/27/6367994.aspx

 

cookie是网页存储到用户硬盘上的一小段信息。最常见的作用是判断用户是否登录、保存偏好设置等。我用到这个是写扫雷时,需要用cookie保存用户的设置,如行、列等。功能已具,笔而记之。

 

cookie具有特定的格式——

        cookiename=cookievalue; expires=epirationDateGMT; path=URL; domin=siteDomin; secure: boolean

 

可以看出由分号隔开的几部分——第一部分是cookie的名称和值,这是每一个cookie中必须有的。其余部分都是可选的:第二部分是cookie的过期时间,到了这个时间浏览器会自动将其删除,如果没有这部分则默认是在关闭浏览器时将其删除。第三部分允许在cookie中存储一个URL,第四部分存储一个域值(这个基本不用管,浏览器会将当前网页的地址存入),第五部分是一个布尔值,为ture时要求传输一个安全协议,如https。

 

一般我们只需要讨论第一部分和第二部分,即值和过期时间

 

javascript的写cookie操作示例:

 

  1. var expireDate = new Date(); // 获取当前时间   
  2. expireDate.setDate(expireDate.getDate()+1); //设置日期为一天后   
  3. var cookieValue = "hello";   
  4. document.cookie = "aCookie=" + cookieValue +"; expires="+expireDate.toGMTString();//写cookie   
  5. alert(document.cookie);  

 

这段代码执行完之后就会创建一个cookie,名称为aCookie,值为"hello",过期时间为一天后。最后一句会打印出这个cookie的内容

可以在谷歌浏览器中查看到它的信息:(谷歌浏览器不支持本地网页文件的cookie,要用它操作cookie必须要放到服务器上!!早先不知道这个,Chrome中没出想要的结果,我费劲心思纠结好久好久……囧
     名称: aCookie 
     内容: hello 
     域: 127.0.0.1 
     路径: /Test2 
     发送: 各种连接 
     可访问脚本的 Cookie: 是 
     已创建: 2011年4月27日星期三下午8:37:12 
     过期时间: 2011年4月28日星期四下午8:37:12

 

一个页面是可以有多个cookie的,它们会被存放在同一个文件中,所以形如 aCookie=”Hello”; anotherCookie=”world” 是一个合法的cookie

cookie本质上是一段字符串,所以可以用任何操作字符串的方法去操作它, 对于上面一个cookie,可以用代码:var string = document.cookie.split("=")[1].split(";")[0]; 获取aCookie的值"hello”.

 

当只设置一个cookie时,存取操作都不复杂,但是当一个页面中存在多个cookie时,这个操作就会变的优点复杂了,如上面得到"hello”的字符串操作就已经略显复杂了。

这时候我们可以借助JQuery来实现更优雅的操作。

 

JQuery的一个小插件~只有1K多的,名称即为Cookie,包含且只包含如下代码——

 

  1. jQuery.cookie = function(name, value, options) {   
  2.     if (typeof value != 'undefined') { // name and value given, set cookie  
  3.         options = options || {};  
  4.         if (value === null) {  
  5.             value = '';  
  6.             options.expires = -1;  
  7.         }  
  8.         var expires = '';  
  9.         if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {  
  10.             var date;  
  11.             if (typeof options.expires == 'number') {  
  12.                 date = new Date();  
  13.                 date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));  
  14.             } else {  
  15.                 date = options.expires;  
  16.             }  
  17.             expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE  
  18.         }  
  19.         // CAUTION: Needed to parenthesize options.path and options.domain  
  20.         // in the following expressions, otherwise they evaluate to undefined  
  21.         // in the packed version for some reason...  
  22.         var path = options.path ? '; path=' + (options.path) : '';  
  23.         var domain = options.domain ? '; domain=' + (options.domain) : '';  
  24.         var secure = options.secure ? '; secure' : '';    
  25.         document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');  
  26.     } else { // only name given, get cookie  
  27.         var cookieValue = null;  
  28.         if (document.cookie && document.cookie != '') {  
  29.             var cookies = document.cookie.split(';');  
  30.             for (var i = 0; i < cookies.length; i++) {  
  31.                 var cookie = jQuery.trim(cookies[i]);  
  32.                 // Does this cookie string begin with the name we want?  
  33.                 if (cookie.substring(0, name.length + 1) == (name + '=')) {  
  34.                     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));  
  35.                     break;  
  36.                 }  
  37.             }  
  38.         }  
  39.         return cookieValue;  
  40.     }  
  41. };  

 

 

只要将这段代码加载之后,便可以使用它的方法了(加载的方法不用多说了吧?最简单的是你直接把它拷到你所用的jQuery中;或者把这段单独存为一个js文件,在html文件中引用……)。

很方便的操作,用法大致如下:

 

 

  1. $.cookie('the_cookie'); //读取Cookie值  
  2. $.cookie(’the_cookie’, ‘the_value’); //设置cookie的值  
  3. $.cookie(’the_cookie’, ‘the_value’, {expires: 7, path: ‘/’, domain: ‘jquery.com’, secure: true});//新建一个cookie 包括有效期 路径 域名等  
  4. $.cookie(’the_cookie’, ‘the_value’); //新建cookie  
  5. $.cookie(’the_cookie’, null); //删除一个cookie  

 

 

其实可以看到,这个插件中只有一个方法,而用参数的不同来实现不同的操作。

 

一个示例——

  1. /* 设开始时页面不存在cookie*/  
  2. padding-top: 0px !important; padding-right: 3px !important; padding-bottom: 0px !important; padding-left: 10px !important; border-top-style: none; border-right-style: none; border-bottom-style:
    分享到:
    评论

相关推荐

    jquery学习笔记及常用函数封装.zip

    本资料包“jquery学习笔记及常用函数封装.zip”包含了从JQuery基础到进阶,再到实战应用的全方位学习资源,适合对JavaScript有一定了解并希望提升jQuery技能的开发者。 首先,让我们从JQuery的基础知识开始。jQuery...

    JavaEE学习项目源代码及学习笔记.zip

    【JavaEE学习项目源代码及学习笔记.zip】这个压缩包包含了一系列关于JavaEE技术栈的实践项目源码和对应的学习笔记,旨在帮助开发者深入理解JavaEE的各项核心技术。下面将逐一介绍这些子文件所涵盖的JavaEE知识点。 ...

    jQuery日历签到插件每日签到页面代码.zip

    这个插件基于JavaScript库jQuery构建,提供了一种简单而直观的方式来展示日期,并让用户能够点击某一天进行签到操作。jQuery因其简洁的API和强大的功能,在前端开发领域被广泛应用,使得开发人员能轻松实现复杂的...

    javaWeb学习笔记

    JavaWeb学习笔记涵盖了多个核心JavaWeb开发的主题,包括基础理论、实战项目以及一些关键技术的应用。以下是对这些知识点的详细说明: 1. **Java基础知识**:JavaWeb开发的基础始于对Java语言的理解,包括语法、面向...

    学习记录:前端学习记录

    在前端开发领域,...这个“learn-record-master”压缩包可能包含了上述部分或全部知识点的学习笔记和实例代码,通过深入学习和实践,可以逐步掌握前端开发中的JavaScript技术栈,从而提升自己的前端开发能力。

    jQuery仿百度商桥在线客服代码.zip

    作为一款高效、便捷的JavaScript库,jQuery以其简洁的API和强大的功能,深受开发者喜爱。本篇文章将深入探讨如何利用jQuery技术,实现一个仿百度商桥的在线客服代码,为网站提供类似的功能。 首先,我们需要了解...

    javascript类型系统 Window对象学习笔记

    ### JavaScript类型系统与Window对象学习笔记 #### 1. JavaScript类型系统简介 在深入探讨Window对象之前,我们首先需要了解JavaScript的类型系统。JavaScript是一种动态类型语言,它将数据类型分为两大类:基本...

    JavaWeb动力节点

    AJAX(Asynchronous JavaScript and XML)用于异步数据交换,jQuery是简化JavaScript操作的库。 9. **系统架构**: C/S(Client/Server)和B/S(Browser/Server)架构是两种常见的系统设计模式,C/S适合速度要求高...

    java系列笔记1

    4. **jQuery知识点**:jQuery是一个轻量级的JavaScript库,简化了JavaScript的DOM操作、事件处理、动画制作和Ajax交互。它的出现大大提高了前端开发效率。 5. **Bootstrap知识点**:Bootstrap是流行的前端框架,...

    java知识点汇总学习路线与笔记

    ### Java知识点汇总学习路线与笔记 #### 一、J2SE **面向对象**是Java的核心,主要包括**封装**、**继承**、**多态**三个特性。通过封装,可以隐藏对象的内部实现细节;继承使得类之间的代码复用成为可能;而多态则...

    北京圣思园Java.Web培训视频-PPT+笔记 整理版

    - 学习会话跟踪技术,包括session和cookie的使用。 9. 工具与环境配置: - 掌握Eclipse或IntelliJ IDEA等集成开发环境的使用。 - 学习如何配置Tomcat服务器和其他相关工具。 10. 项目实践与部署: - 通过实际...

    jQuery右侧悬浮购物车清单+在线客服代码.zip

    对于初学者而言,这是一个极好的学习案例,不仅可以了解jQuery的基础用法,还能深入理解前端开发的整体流程。对于有经验的开发者,这个项目提供了可扩展和定制的基础,可以进一步优化性能或添加更多的功能。

    PHP100视频教程

    2. **第41讲.ppt** - 这可能是一个PowerPoint演示文稿,作为第41节的辅助教学材料,可能会包含幻灯片式的讲解内容,便于学习者回顾和笔记。 3. **使用说明文档.txt** - 这是一个文本文件,可能包含了如何使用这些...

    Java学习笔记-个人整理的

    {13.3}连接Oracle数据库及操作}{192}{section.13.3} {13.4}批处理模式}{195}{section.13.4} {13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {...

    java从入门到精通笔记

    JavaScript与jQuery** - **JavaScript基础**: 数据类型、控制结构 - **DOM操作**: 获取元素、修改样式 - **jQuery**: jQuery的选择器、事件绑定 **9. Spring** - **Spring框架**: IoC容器、AOP - **Bean管理**: ...

    Javascript_practicas

    9. **jQuery库**:虽然现在原生JavaScript API已经足够强大,但jQuery曾经是JavaScript开发的标准库,简化了DOM操作、事件处理和动画效果。 10. **前端框架和库**:如今,React、Vue.js和Angular等框架在前端开发中...

    spider_note:关于蜘蛛的笔记

    【描述】: "spider_note 关于蜘蛛的笔记" 提供的信息简洁,表明这可能是一个个人或团队在学习和实践网络爬虫过程中积累的笔记,记录了关于JavaScript爬虫的各种技术和技巧。 【标签】: "JavaScript" 明确指出了主要...

    PHP随手笔记

    例如,注销功能可能涉及到清除session和cookie。 4. **登陆界面**: - 登录界面通常涉及JavaScript、图片加载和验证码功能。验证码可以通过改变其宽度和高度增加安全性,防止自动化攻击。 5. **标签扩展**: - ...

    基于Java的在线购物系统的设计与实现(源代码+系统)

    - **JavaScript/jQuery**:前端交互效果的实现,如表单验证、下拉菜单等。 5. **安全机制** - **HTTPS**:保障用户数据传输的安全性。 - **Session和Cookie**:管理用户会话,防止未授权访问。 - **SQL注入防护...

    asp.net控件笔记 asp.net控件笔记

    2. 客户端控件:客户端控件,如jQuery UI或AJAX控件,主要在用户的浏览器上运行JavaScript代码,提供更流畅的用户体验。例如,UpdatePanel控件可以实现页面的部分更新,而无需完整刷新。 三、控件事件处理 ASP.NET...

Global site tag (gtag.js) - Google Analytics