zoukankan      html  css  js  c++  java
  • Javascript操作cookie

    cookie的概念

      Javascript是运行在客户端的脚本,Session运行在服务端,所以Javascript不能操作Session,cookie运行在客户端,具有和Session类似的效果,可以被Javascript操作。 cookie是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie是一段以键值对形式(key=value)保存在计算机硬盘上的字符串信息,各个cookie之间用分号加空格隔开。cookie存储容量大概4kb,不同浏览器存在微小差异。cookie存在有效期,默认有效期是从cookie生成到浏览器关闭,有效期也可以自定义。Javascript中cookie名称区分大小写。

    cookie的应用

      cookie最典型的应用是判断用户是否登陆网站。还有一个重要应用场合是"购物车"(用户可能会在一段时间内在同一家网站的不同页面中选择不同商品,这些信息都会写入Cookies,以便在最后付款时提取信息)。

    设置cookie:

    document.cookie="name=123" //将cookie写入客户端
    document.cookie="name=123;word=123;" //只能设置name=123(一条语句只能同时设置一个cookie)

    获取cookie:

    function getCookie(name)
    {
        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
        if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
        else
        return null;
    }

    删除cookie

    //删除cookie需要将失效日期设置为过去的时间点
    function delCookie(name) {
    var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); //将时间转换成GMT格式的字符串 }

    给cookie设置失效日期

      expires表示cookie的失效日期。如果省略expires或将其设置为0或负值,浏览器关闭时cookie失效。cookie失效前,即使重启电脑也不会丢失。expires不可读,在Javascript中使用document.cookie不会显示出expires。expires值应该使用GMT格式的时间字符串(GMT即格林尼治标准时间,现在也称为UTC即全球标准时间)。

    //在Javascript中使用expires时应该和cookie同时写入,如:
    document.cookie = "num=123;expires=" + exp;
    //而如下写法是不正确的:
    document.cookie = "num=123";
    document.cookie = "expires=" + exp;
    //这样写会形成两个cookie,第二个cookie的名称是expires,两个cookie均没有指定失效日期。
    function setCookie(name, value)
    {
      var date = new Date(); //获取当前时间
      var exp = 10; //expiresDays缩写exp(有效时间)
      date.setTime(date.getTime() + exp * 24 * 3600 * 1000); //格式化为cookie识别的时间
      document.cookie=escape(name) + "=" + escape(value) + ";expires="+date.toGMTString(); //将name设置为10天后过期,超过这个时间name这条cookie会消失
    }
    1、toGMTString()方法可根据格林尼治时间(GMT)将Date对象转换为GMT格式的字符串
    2、escape()函数可对字符串进行编码,这样就可以在所有计算机上读取该字符串。该方法不会对ASCII字母和数字进行编码,也不会对*@-_+./。这些ASCII标点符号进行编码,其他所有字符
    都会被转义序列替换。
    3、unescape()函数可以对escape()编码的字符串进行解码。

      

  • 相关阅读:
    day63_django_html
    day62_django
    day20
    diango_自定义标签问题
    day64_django_orm
    day16_函数嵌套及对象
    day60_django
    pip 安装问题
    day13_文件操作
    文本溢出显示省略号(…) 小坦克
  • 原文地址:https://www.cnblogs.com/llljpf/p/10485464.html
Copyright © 2011-2022 走看看