cookie的使用

1.使用场景

  • 保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了。
  • 追踪用户行为。例如天气预报网站,系统能够记住上一次访问的地区。
  • 定制页面。如果网站提供了换肤功能,当用户下次访问时,仍然可以保存上一次访问的界面风格。
  • 创建购物车。例如淘宝网就使用cookie记录了用户曾经浏览过的商品,方便随时进行比较。

2.cookie的设置

  • 设置cookie:
1、document.cookie = 'userId=121;phone=1311111111';
2、document.cookie="str="+escape("I love ajax");(相当于document.cookie="str=I%20love%20ajax";为了避免空格符号等,使用escape()统一编码)
3、当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值。
  • 获取cookie值:
1、document.cookie直接获取所有的cookie
2、若想获得单个cookie,需要进行字符串和数组的相关操作。
  • 删除cookie:
1、删除cookie,可将其过期时间设定为一个过去的值。

3.函数

  • 添加cookie:addCookie(name,value,time)
  • 调用方法:addCookie('userId','121',5)
function addCookie(name,value,time){
    var str = name+"="+escape(value);
    if(time>0){//time为0时不设定过期事件,浏览器关闭时cookie自动消失    
        var date = new Date();
        var ms = time*24*3600*1000;
        date.setTime(date.getTime()+ms);
        str += ";expires="+date.toGMTString()+";path=/"; 
        document.cookie = str;
    }
}
  • 获取指定cookie:getCookie(c_name)
  • 调用方法:getCookie('userId')
function getCookie(name) {
    if(document.cookie.length > 0) {
        c_start = document.cookie.indexOf(name + "=")
        if(c_start != -1) {
            c_start = c_start + name.length + 1
            c_end = document.cookie.indexOf(";", c_start)
            if(c_end == -1) c_end = document.cookie.length
            return unescape(document.cookie.substring(c_start, c_end))
        }
    }
    return ""
}
  • 删除指定cookie:deleteCookie(name)
  • 调用方法:deleteCookie('userId')
function deleteCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = getCookie(name);
    if(cval != null)
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/";
}
  • 检测是否有cookie存在:checkCookie(name)
  • 调用方法:checkCookie('userId')
function checkCookie(name) {
    var c = document.cookie.indexOf(name);
    if(c != -1) {
        return true;
    } else {
        return false;
    }
}
  • 更新cookie:updateCookie(name,value,time)
  • 调用方法:updateCookie('userId','111',2)
function updateCookie(name, value, time) {
    var str = name + "=" + escape(value);
    var date = new Date();
    var ms = time * 24 * 3600 * 1000;
    date.setTime(date.getTime() + ms);
    str += ";expires=" + date.toGMTString() + ";path=/";
    document.cookie = str;
}

4.使用案例(记住密码-部分代码)

html
image.png
javascript
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • JavaScript是运行在客户端的脚本,一般是不能够直接设置Session的,因为Session是运行在服务器端...
    hh_王小米阅读 1,483评论 2 0
  • 我们主要关注的是cookie的特性,以及如何使用。所以,先不讲枯燥的理论知识,相信这些理论大家从网上随随便便就能找...
    绚烂的烟火阅读 3,029评论 0 3
  • 一、cookie的作用 在我们平常写的B/S程序中,会经常用到cookie,主要有以下一些作用: 1、记录用户名和...
    Bookcyj阅读 2,843评论 0 1
  • 分享下最近项目用到的cookie的使用及管理 首先,先介绍下iOS对cookie的操作的两个类: 帖子来源于:ht...
    花前月下阅读 40,564评论 65 63
  • Node.js 中cookie的使用一 、创建 exapmple:res.cookie('name', 'koby...
    changlinwang阅读 413评论 0 0