cookie 是存储于访问者的计算机中的变量

今天把javascript如何用来创建及存储cookie复习了一下,其中的一点体会拿出来和大家讨论,首先看一下基础知识:

什么是cookie

cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

有关cookie的例子

  • 名字 cookie: 当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。k7娱乐城
  • 密码 cookie: 当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。
  • 日期 cookie: 当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是从 cookie 中取回的。

下面来创建一个cookie的实例,如何来创建cookie及取出cookie。

javascript部分代码:

view source

print?

01 //创建cookie
02 function setCookie(name, value, expireday) {
03     var exp = new Date();
04     exp.setTime(exp.getTime() + expireday*24*60*60*1000); //设置cookie的期限
05     document.cookie = name+"="+escape(value)+"; expires"+"="+exp.toGMTString();//创建cookie
06 }
07 //提取cookie中的值
08 function getCookie(name) {
09     var cookieStr = document.cookie;
10     if(cookieStr.length > 0) {
11         var cookieArr = cookieStr.split(";"); //将cookie信息转换成数组
12         for (var i=0; i<cookieArr.length; i++) {
13             var cookieVal = cookieArr[i].split("="); //将每一组cookie(cookie名和值)也转换成数组
14             if(cookieVal[0] == name) {
15                 return unescape(cookieVal[1]); //返回需要提取的cookie值
16             }
17         }
18     }
19 }
20 //测试cookie
21 function checkCookie() {
22     var cookieUser = document.getElementById("cookieUser");
23     var userName = getCookie("userName");
24     if(userName) {
25         cookieUser.innerHTML = "您好"+userName+",欢迎再次回来!";
26     } else {
27         var value = prompt("请输入用户名", "");
28         if(value) {
29             setCookie(‘userName‘, value, 1);
30         } else {
31             alert("请输入用户名!");
32         }
33     }
34 }

主要在于如何提取我们需要的cookie信息,在本例的getCookie函数中主要是将cookie信息转化成数组的方式来查找我们需要提取的cookie值。还可以通过正则表达式的方式来匹配,如下:

view source

print?

1 function getCookie(name) {
2     var cookieStr = document.cookie;
3     var cookieArr = cookieStr.match(new RegExp(name+"=[a-zA-Z0-9]*;$"));
4     var cookieVal = cookieArr.split("=");
5     if(cookieVal[0] == name) {
6         return unescape(cookieVal[1]);
7     }
8 }

比如在这个例子中,如果打开浏览器中没有存储名为userName的cookie,则会提示用户输入用户名,再次刷新页面时则会显示输入的cookie值。 最后我们可以测试一下代码:

view source

print?

1 <body onload="checkCookie()">
2 <p id="cookieUser"></p>
3 </body>
时间: 2024-11-08 21:48:43

cookie 是存储于访问者的计算机中的变量的相关文章

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息. 说白了session就是一种可以维持服务器端的数据存储技术.session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能 3. 单纯的使用session来维持用户状态的话

计算机中数字的二进制存储形式

今天,做个关于二进制的算法题,突然有个问题一直想不通为什么~5是6,计算机基础知识不过关啊,所以现在来弥补下,正数和负数在计算机中是怎么存储和计算的. 讲讲计算机中的存储形式: 计算机中存储的数都是以补码的方式存储的,而正数的原码,反码,补码都是一样的.但是负数的原码,反码,补码是不一样的. 下面都是以java中的int i=5为例. 正数5的原码就是其二进制码:00000000 00000000 00000000 00000101 反码是:00000000 00000000 00000000

计算机中浮点度存储

今天回顾一下双精度存储(double). double(32个字节) 第一位存储正负号 0为正 1为负 第2位到12位存储指数,要把指数的结果-1023 剩下的所有位存储有效位 在我的电脑操作系统是小端,经过计算 0 10000000000 0000000000000000000000000000000000000000000000000000 = 1.0*2^1=2.0; 0100 0000 0000 0000 00000000....000000000 用数组存储char arr[8]={0

数据在计算机中的存储

1.大小端模式(字节序) 大小端的概念:数在内存中分字节存储的先后顺序.大端模式即数的低位存在高地址,高位存在低地址当中.而小端模式相反,低位存在低地址,高位存在高地址.比如0x1234,这里的高低位是从左往右的.0x12是高位,0x34是低位.       1)大端模式: 低地址 -----------------> 高地址 0x12  |  0x34  |  0x56  |  0x78        2)小端模式: 低地址 ------------------> 高地址 0x78  | 

负数在计算机中的存储

负数在计算机中以补码的形式存储,最高位1为负数,0为正数,补码的方式方便进行加法运算. byte类型数值范围-128到127. 最高位是标志位,127二进制为01111111,则-127为10000001,-128=-127-1,所以其二进制为10000000 byte b=11111111;正数表现形式:00000001,即b=-1; 正数取反加1为其负数表现形式,那么负数取反加1会得到起它的正数形式吗? 例:-3=1111 1101 ;取反后为:0000 0010 ; 加1:0000 001

java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式

复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中 分析: 数据源: FileIntputStream.java -- 读取数据 -- FileInputStream 目的地: b.txt --- 写入数据 ---- FileOutputStream 思路:首先读取数据源的内容,然后把读取到的内容再写入到目的地中 前提:数据源存在,否则会报错 1 import java.io.FileInputStream; 2 import j

浮点数在计算机中存储方式

浮点数在计算机中存储方式 C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的, float遵从的是IEEE R32.24 ,而double 遵从的是R64.53. 无论是单精度还是双精度在存储中都分为三个

计算机中的存储单位

1 bit=1位 bit是计算机中能识别的最小单位 8 bit = 1 Byte = 1 字节 = 255 = 2**8-1 字节是计算机中最小的存储单位 1024Byte = 1 KByte = 1KB 1024KByte = 1MByte = 1MB 100万字节 1024MB = 1TB = 1万亿字节 硬盘是外部存储 特点: 1.数据断电不丢失 2.可重复读写 3.速度慢(相对于内存) 原文地址:https://www.cnblogs.com/zyqy/p/9226509.html

计算机中存储的分类

一般有三层结构:CPU寄存器,主存,辅存 在高档的计算机中细分为:寄存器,高速缓存,主存储器,磁盘缓存,固定磁盘,可移动存储介质. 其中寄存器,高速缓存,主存储器和磁盘缓存属于操作系统的管辖范围,掉电后其中的存储信息不存在. 寄存器和主存储器被称为可执行存储器,缓存则属于辅助存储器,不同之处就是访问机制的不同:进程可以在很少的时钟周期内使用一条load或store指令对可执行存储器进行访问,但是对于辅存需要通过I/O设备实现. 不同层次的存储介质,由操作系统进行统一管理.操作系统的存储管理负责对