zoukankan      html  css  js  c++  java
  • JS设置cookie、读取cookie、删除cookie

    session和cookie的区别:session运行在服务器端,cookie运行在客户端

    cookie的结构:cookie是以键值对的形式保存的,即key=value的格式,各个cookie之间一般是以“;”分隔。 

    在控制台打印document.cookie可以看到如下结果:

    JS设置cookie:

           要保存变量username的值("Amy")到cookie中,key值为name,js代码:

       document.cookie = "name="+username; 

    JS读取cookie:

          假设cookie中存储的内容为:name=Amy;sex=female;

          在页面中获取变量username的值的JS:

          var username = document.cookie.split(";")[0].split("0")[1];

    在实际项目中操作cookie的方法:

          //setCookie

    function setCookie(name, value) {
           var days = 1;
           var exp = new Date();
           exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
           document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
    }

      //getCookie

    function getcookie(key) {
                var strCookie = document.cookie;
                var arrCookie = strCookie.split(";");
                for (var m = 0; m < arrCookie.length; m++) {
                    var ac = $.trim(arrCookie[m]);
                    if (ac.indexOf(key + '=') != -1) {
                        return ac.replace(key + '=', "");
                    }
                }
    }

       //checkCookie

    function checkcookie(key) {
                var isok = false;
                var strCookie = document.cookie;
                var arrCookie = strCookie.split(";");
                for (var m = 0; m < arrCookie.length; m++) {
                    var ac = $.trim(arrCookie[m]);
                    if (ac.indexOf(key+ '=') != -1) {
                        isok = true;
                        break;
                    }
                }
                return isok;
    }

    实例中使用cookie:

       

    var news_id = $(this).attr("id");
    var cookieId = "selfLD_3@" + date + "@" + news_id;//命名key
    if (getcookie(cookieId)) {
               alert('今日此项您已投过,dddd请勿重复投票。感谢您的使用!');
                return;
    } else {
                 setCookie(cookieId, 1);
    }
    
    var zana = $(this);
    $.ajax({
               type: "GET",
               async: true,//异步请求
               dataType: "jsonp",
               crossDomain: true,
               url: "../plusone3/LD_3/0/" + news_id,
               jsonp: 'jsoncallback',
                jsonpCallback: "success_jsonpCallback",
               success: function(data) {
                        console.log(data);
                        if (data.status == 1) {
                                zana.attr('class', 'zansel');
                                var origin =$("#"+news_id).text();
                                var intorigin = parseInt(origin);
                                if(isNaN(intorigin)){
                                    intorigin = 0;
                                }
                                intorigin++;
                                $("#" + news_id).text(intorigin);
                                alert("感谢您的参与,谢谢!");
                         }else if(data.status == -1){
                                alert('今日您已投过此项,请勿重复投票。感谢您的使用!');
                        }
                 }
     })

    重复投票的情况下使用cookie来判断,而无需再次请求后台接口。

    http://www.w3school.com.cn/js/js_cookies.asp

    js cookie:http://www.cnblogs.com/fishtreeyu/archive/2011/10/06/2200280.html

    jquery.cookie:http://www.cnblogs.com/Denny_Yang/archive/2012/06/11/2544590.html   

  • 相关阅读:
    GO 爬虫图片相关
    GO 爬虫链接
    Redis使用
    HTTP请求
    lris框架基础案例
    UDP通信功能
    C++随机
    matplotlib显示指数部分的负号
    使用opencv-python读取中文路径图片
    pytorch模型可视化,torchviz,tensorboardX,文本方式
  • 原文地址:https://www.cnblogs.com/loveamyforever/p/6065892.html
Copyright © 2011-2022 走看看