• jquery中的cookie


    关于cookie,一直是个很敏感的问题,以前对于cookie的处理,都是用原生的方式处理,创建函数对cookie进行处理,创建,设置以及删除。。

    function setCookie(key,value,day){
                var date = new Date(); //获取时间对象
                var nowDate = date.getDate(); //返回日期月份中的天数(1-31)
    
                date.setDate(nowDate + day); //设置日期月份的天数
    
                //document.cookie = key+"="+value+"; expires="+date; //将新增的名值对和指定的过期时间写入cookie
                var cookie = key+"="+value+"; expires="+date; //本地模拟
                return cookie;
            }
            //获取cookie
            var cookie = "name1=aa; name2=bb; name3=cc; name4=dd"; //模拟cookie
    
            function getCookie(key){
                var arr = cookie.split("; "); //先通过分号和空格将字符串解析成数组["name1=aa", "name2=bb"…]
                for (var i=0; i<arr.length; i++){
                    var arr2 = arr[i].split("="); //通过等号再度解析["name1", "aa"]
    //                console.log(arr2);
                    if (arr2[0] == key){ //通过下标取得key,与传进来的key相比较,然后返回对应的value
                        return arr2[1];
                    }
                }
            }
            //移除cookie
            function removeCookie(removeKey){
                
                return setCookie(removeKey,".",-1); //移除cookie的简便方法就是设置(时间戳)expires属性等于0,或者等于一个过去的日期。
            }

    但是jq还是为我们提供了强大的cookie功能,避免我们在操作cookie的时候因为数据的繁琐而产生错误的。

    jquery.cookie.js

    1).新添加一个会话 cookie:$.cookie('the_cookie', 'the_value');

    注:当没有指明 cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为“会话cookie(session cookie)”。

    2).创建一个cookie并设置有效时间为 7天:$.cookie('the_cookie', 'the_value', { expires: 7 });

    注:当指明了cookie有效时间时,所创建的cookie被称为“持久 cookie (persistent  cookie)”。

    3).创建一个cookie并设置 cookie的有效路径:$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

    注:在默认情况下,只有设置 cookie的网页才能读取该 cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取 cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取 cookie (一般不要这样设置,防止出现冲突) 。

    4) .获取cookie

    $.cookie('the_cookie'); // cookie存在 => 'the_value'
     
    $.cookie('not_existing'); // cookie不存在 => null

    5) .删除cookie,通过传递null作为cookie的值即可:$.cookie('the_cookie', null);

    代码写法:

    var COOKIE_NAME = 'username'; 
     if( $.cookie(COOKIE_NAME) ){ 
       $("#username").val( $.cookie(COOKIE_NAME) ); 
     } 
     $("#check").click(function(){ 
       if(this.checked){ 
         $.cookie(COOKIE_NAME, $("#username").val() , { path: '/', expires: 10 }); 
         //var date = new Date(); 
         //date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); //三天后的这个时候过期 
         //$.cookie(COOKIE_NAME, $("#username").val(), { path: '/', expires: date }); 
       //$.cookie('name', ‘value', {expires: 7, path: ‘/', domain: ‘jquery.com', secure: true});
    }else{ $.cookie(COOKIE_NAME, null, { path: '/' }); //删除cookie } });

    expires: (Number | Date)  :有效期,可以设置一个整数作为有效期(单位:天),也可以设置一个日期对象作为Cookie的过期日期。如果指定日期为负数,那么此cookie将被删除;如果不设置或者设置为null,那么此cookie将被当作Session Cookie处理,并且在浏览器关闭后删除
    path:  (String) : Cookie的路径属性,默认是创建该cookie的页面路径
    domain: (String)  : Cookie的域名属性,默认是创建该cookie的页面域名
    secure: (Boolean)  :如果设为true,那么此cookie的传输会要求一个安全协议,例如HTTPS。

    //部分内容转载自网络。

  • 相关阅读:
    Spring HttpIvoker实现Java的远程调用
    基于struts2框架文件的上传与下载
    12月9号linux学习
    2019.7.7 练习题
    题解 儿童节继续欢乐赛
    Winfroms看看吧客官~
    group by应用
    基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (1): 安装SharePoint 2010
    基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (2): 创建并发布SharePoint Intranet站点
    Inside Microsoft SharePoint 2010 简译(1): SharePoint 2010开发者路线图
  • 原文地址:https://www.cnblogs.com/wanglaowu/p/6170169.html
Copyright © 2020-2023  润新知