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;

 

JavaScript 客户端JavaScript之cookie和客户端持久性的更多相关文章

  1. JavaScript 客户端JavaScript之脚本化HTTP(通过XMLHttpRequest)

    XMLHttpRequest对象的设计目的是为了处理由普通文本或XML组成的响应:但是,一个响应也可能是另外一种类型,如果用户代理(UA)支持这种内容类型的话.   大多数浏览的客户端JavaScri ...

  2. JavaScript 客户端JavaScript之 脚本化浏览器窗口

    1.计时器 客户端Javascript以全局函数setTimeOut().clearTimeOut().setInterval().clearInterval()提供这一功能.   前者是从运行的那一 ...

  3. JavaScript 客户端JavaScript之 脚本化文档

    客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序,脚本化Web页面的内容正是JavaScript存在的理由.   一个文档对象模型或者说DOM就是一个API,它定义了如何访问 ...

  4. JavaScript的进阶之路(七)客户端JavaScript知识点总结

    一.客户端JavaScript主要是BOM DOM的操作和js脚本的兼容性.互用性.可访问性.安全性的应用.以及一些框架的引用. 二.BOM:浏览器对象模型 主要介绍window对象 1.定时器:se ...

  5. 【WIP】客户端JavaScript Web Object

    创建: 2017/10/11   更新: 2017/10/14 标题加上[WIP],增加[TODO] 更新: 2018/01/22 更改标题 [客户端JavaScript Web Object, UR ...

  6. 【JavaScript权威指南(第五版)】笔记之第二部分 客户端JavaScript 第13章~第23章

    第十三章 Web浏览器中的javascript ①   eg:下面两行代码实际上执行的是相同的功能 var answer = 42; window.answer = 42;   ③每个window对象 ...

  7. JavaScript 客户端JavaScript之事件(DOM API 提供模块之一)

    具有交互性的JavaScript程序使用的是事件驱动的程序设计模型.   目前使用的有3种完全不同的不兼容的事件处理模型. 1.原始事件模型 (一种简单的事件处理模式) 一般把它看作0级DOM API ...

  8. JavaScript 客户端JavaScript之 Web浏览器的环境

    Web浏览器实现的Javascript,通过Web浏览器实现的JavaScript引入了大量可脚本化的对象(1.Web浏览器 2.HTML 3.HTML中的内容)  Web浏览器中的Javascrip ...

  9. 客户端JavaScript(window、document、element)

    一.window对象是所有客户端JavaScript特性和API的主要接入点,用window来引用它. 属性:location属性(引用Location对象,当前显示在窗口的URL).document ...

  10. 前端--关于客户端javascript

    浏览器中的Javascript 客户端javascript就是运行在浏览器中的javascript,现代的浏览器已经有了很好的发展,虽然它是一个应用程序,但完全可以把它看作是一个简易的操作系统,因为像 ...

随机推荐

  1. 关于什么时候用pop什么时候用dismiss

    假如你是类似于这样跳转过来的self presentViewController: animated: completion:那么你回去的时候就要dismiss假如你是这样跳转过来的 self.nav ...

  2. CentOS 6.4 64位 源码编译hadoop 2.2.0

    搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit. ...

  3. ionic中使用Cordova Uglify 压缩js与css

    参照:https://www.npmjs.com/package/cordova-uglify 安装:npm install cordova-uglify 安装完成之后,打开: hooks/uglif ...

  4. 腾讯CDC谈扁平化设计

    扁平化设计无疑是当前讨论最多,最火的设计形式,自ios7面世以来更是将扁平化设计的讨论推向风口浪尖. 在这里我不想分析拟物设计和扁平化设计的优劣,更不想说谁更好!在形式服从内容的今天,我只能说哪种设计 ...

  5. jQuery deferred学习笔记

    简介 在jQuery1.5.0版本引入,为了实现Deferred对象,jQuery改写了ajax.是由jQuery.Deferred()方法创建的链式对象. $.Deferred在jQuery代码自身 ...

  6. [转载]Android开发必备的21个免费资源和工具

    转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...

  7. SpringMVC 自定义拦截资料

    1.springmvc学习笔记(28)——自定义拦截器 2.Spring MVC HandlerInterceptor Annotation Example with WebMvcConfigurer ...

  8. 阳光餐厅--oracle---建表---danrong

    select * from manager; select * from dish; select * from board; select * from employee; select * fro ...

  9. 左移运算符<<

    在许多计算机编程语言(例如:C语言.C++语言.Java语言.JavaScript语言,Pascal语言等)中,“<<”代表左移运算符(就相当于'shl').该运算符为双目运算符,结合方向 ...

  10. Neutron中的Service类

    Service是OpenStack中非常重要的一个概念,各个服务的组件都以Service类的方式来进行交互. Neutron中的Service类继承自rpc中的Service,总体的继承关系为 neu ...