zoukankan      html  css  js  c++  java
  • JavaScript 客户端JavaScript之cookie和客户端持久性

    Document对象都有一个cookie属性,它使得JavaScript代码能够在用户的硬盘上持久地存储数据,
    并且能够获取以这种方式存储的数据。客户端持久性是赋予WEB应用程序记忆力的一种简单方法。
     
    cookie还可以用于客户端脚本化,并且是HTTP协议的一个标准扩展。
     
    cookie的字符串由  名字/值 组成 (=区分),不同的属性之间用分号隔开。
     
    cookie有4个可选属性
     
    1、expires(已被max-age取代)  生存期
    expires是未来的一个过期日期,max-age用秒来设置生命期
     
    2、path    指定与此cookie关联在一起的网页
    具有默认值,可通过设置path值,使其他来自同一个网络服务器的网页也可见(只要它的URL中
    含有指定路径(path的值),就可以共享这个cookie(具有访问权限的页面可以使用docuemtn.cookie访问指定的cookie)
     
    3、domain  用于多个web服务器共享cookie
     
    如 domain=.example.com;path=/;
     
    那么 catalog.example.com    orders.example.com 以及其它所有位于example.com域的其他服务器上的网页
    都能访问 这个cookie
     
    注:不可设置为服务器所在的域之外的域
     
    4、secure        布尔值
    指定如何传输
    true       Https或其他的安全协议连接时才被传输
    false      Http就可传输
     
    注:此4个都是cookie的属性,不是JavaScript对象的属性
    navigator.cookieEnabled  可查看浏览器是否启用cookie
     
     
     
     
    19.2 cookie的存储 
     
    注:cookie值不能含有分号、逗号或空白符
     
    方式: name1=value1;name2=value2;max-age=seconds;path=path;domain=domain;secure;
     
        document.getElementById("b1").onclick = function () {
            document.cookie = "version=a;max-age=2000;";
            var a = document.cookie;
     
        }
    用decodeURIComponent() 解码,以前用escape()和unescape()现基本已弃用。
    通过max-age设置,也可以用expires(必须是Date.toGMTString() 格式规范)
     
    max-age=60*60*24;
     
    1、改变一个cookie的值
        使用同一个path和domain以及新的值,再设置一次cookie的值(或更新生命期)
    2、删除cookie的值
    设置max-age值设置为0,或者设置为任意的值(或空的值)
     
     
    cookie的局限性
    浏览器总个数限制及每个cookie的大小控制,一般为300个及4KB的大小限制。
     
    19.3    cookie的读取
        只能读取name=value;这些字符串,不能对cookie4种属性进行读取。
    不同的name=value且分号隔开,value有多个值,可以且冒号分开,再自定义方法解析。
     
    注:cookie的惟一标识是 path+domain+name
     
    19.5 cookie的替代方法
    IE userData
    Flash SharedObject
     
    注:设置值时     "theme=blue; max-age=60; path=/; domain=test.com"   键值顺序不能乱放,  max-age=60; path=/; domain=test.com 这几个必须在实际值后面,如果将其它值放在这中间或之后,会读取不到。

    "theme=blue; max-age=60; path=/; domain=test.com"  可读取 theme=blue; max-age=60; 
    "max-age=60; theme=blue;path=/; domain=test.com"   可读取 max-age=60; 

     
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/tlxxm/p/4396990.html
Copyright © 2011-2022 走看看