cookie定义、封装、使用

cookie定义

持久化存储本地数据的一种技术与域名有关

特点

  1. 数据大小4k左右
  2. 数据条数50条
  3. 有效期 默认会话级别
  4. 与域名有关 ??
  5. 在客户端与服务端间进行传输

使用方式

  • 存储数据形式:
    ‘key=value; key=value; key=value’
  • 获取cookie
    let cookie = document.cookie
  • 保存cookie
    document.cookie = ‘key=value’
    document.cookie = ‘key=value;expires=标准日期时间’
    setCookie(‘name’,‘rose’,246060*1000) 时间
    document.cookie = ‘name=jack’ // ‘name=jack’
    document.cookie = ‘age=18’ // ‘name=jack; age=18’
  • 删除cookie
    设置时间为当前时间之前或
    removeCookie(‘key’)

封装cookie工具函数

/**
 * 保存cookie
 * @param {*} key
 * @param {*} value
 * @param {*} expires 有效时间 单位毫米
 */
function setCookie(key, value, expires) {
	let time = new Date()
	// time.setTime(time.getTime() + expires)
	time.setTime(time.getTime() - 8 * 60 * 60 * 1000 + expires)
	document.cookie = `${key}=${value};expires=${time}`
}

/**
 * 获取cookie
 * @param {*} key 
 */
function getCookie(key){
    let value = null
    let cookie = document.cookie // 'name=rose; age=18
    let arr = cookie.split(';') // ['name=rose',' age=18]
    //遍历数组
    for(let i = 0; i < arr.length; i++){
        let item = arr[i] // 'name=rose'   ' age=18'
        let itemArr = item.split('=') // ['name','rose]  [' age','18']
        if(itemArr[0].trim() == key){
            value = itemArr[1]
            break;
        }
    }

    return value
}

/**
 * 删除cookie
 */
function removeCookie(key){
    setCookie(key,'',-1)
}

第三方cookie库使用–js.cookie

  • 写入cookie
    Cookies.set(‘name’, ‘value’)
    Cookies.set(‘key’, ‘value’, { expires: 27 });//创建有效期为27天的cookie

  • 读取
    Cookies.get(‘name’) // => ‘value’
    Cookies.get(‘nothing’) // => undefined

  • 读取所有可见的cookie
    Cookies.get()

  • 删除某项cookie值
    Cookies.remove(‘name’)

<body>
		<h2>cookie技术</h2>
		<button class="get-cookie">获取</button>
		<button class="save-cookie">保存</button>
		<button class="delete-cookie">删除</button>
		<p></p>
        <script src="./js.cookie.js"></script>
		<script>
			const addCookiKBtn = document.querySelector('.get-cookie')
			const saveCookiKBtn = document.querySelector('.save-cookie')
			const deleteCookiKBtn = document.querySelector('.delete-cookie')
			const pEle = document.querySelector('p')

			//获取cookie
			addCookiKBtn.addEventListener('click', function () {
				let value = Cookies.get('name') 
				pEle.innerHTML = value
			})
			//保存cookie
			saveCookiKBtn.addEventListener('click', function () {
                Cookies.set('name', 'jack', { expires: 1 });
				alert('保存成功')
			})
			//删除cookie
			deleteCookiKBtn.addEventListener('click', function () {
                Cookies.remove('name')
            })
		</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值