js 原生cookie封装

前言

Cookie 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能。

举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存)

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成这里不讨论安全性和适用范围

原生cookie的使用

cookie存储

document.cookie = "name=111";

cookie获取

//存储cookies
document.cookie = "name=111";
//获取cookies
var cookies = document.cookie;
console.log(cookies);

cookie修改

//存储cookies
document.cookie = "name=111";
//覆盖cookies
document.cookie = "name=222";
//获取cookies
var cookies = document.cookie;
console.log(cookies);

cookie删除

//存储cookies
document.cookie = "username=zhangsan";
//删除cookie,您需要设置expires参数为以前的时间即可,如 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
//获取cookies
var cookies = document.cookie;
console.log(cookies);

cookie封装

cookie简单使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/myCookie.js"></script>
</head>
<body>

</body>
<script>
    setCookie("name","111",10000);
    setCookie("name","222",10000);//存cookie也是修改cookie
    setCookie("pass","333");
    getCookie("name");
    console.log( getCookie("name"));
    remCookie("name")
</script>
</html>

cookie封装工具类

即拿即用
setCookie(key,value) 存储cookie 无过期时间(手动删除)
setCookie(key,value,exdays) 存储cookie 有过期时间(手动设置)
getCookie(key) 获取cookie
remCookie(key) 删除cookie

myCookies.js

/**
 * Cookie值设置函数  无过期时间(需要手动删除)
 * @param cname     key名称
 * @param cvalue    value值
 */
function setCookie(key, value) {
    //将 键、值、和过期时间  写入document
    document.cookie = key + '=' + value;
}

/**
 * Cookie值设置函数
 * @param cname     key名称
 * @param cvalue    value值
 * @param exdays    过期时间
 */
function setCookie(key, value, exdays) {
    let date_ = new Date();
    //设置时间为 当前时间+过期时间
    date_.setDate(date_.getDate() + exdays);
    //将 键、值、和过期时间  写入document
    document.cookie = key + '=' + value + ';expires=' + date_;
}
/**
 * Cookie值设置函数
 * @param cname     key名称
 * @param cvalue    value值
 * @param exdays    过期天数
 */
/*function setCookie(key, value, exdays) {
    let d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = key + "=" + value + "; " + expires;
}*/

/**
 * Cookie值获取函数
 * @param key     key名称
 * return         返回key对应的value值
 */
function getCookie(key) {
    // 多个cookie通过;分割为多个由'键=值'组成的数组
    var array = document.cookie.split(';');
    //console.log(array);
    //通过for循环遍历数组 得到每个 键=值
    for (var i = 0; i < array.length; i++) {
        //把 键=值 中间的=去掉  得到的新数组 只有 键和值 组成
        var new_Array = array[i].split('=');
        // 多个cookie存值的时候  会存在某个cookie的值名前面有空格 去除
        var n_key = new_Array[0].replace(/^\s/, '');
        if (n_key == key) {
            //console.log(new_Array[0], new_Array[1]);
            return new_Array[1];
        }
    }
    return '';
}

/**
 * Cookie值删除函数
 * @param key     key名称
 */
function remCookie(key) {
    //value可以设置为空字符串 在这里不起作用
    this.setCookie('name', '', -1);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值