前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cookie、sessionStorage、localStorage

cookie、sessionStorage、localStorage

作者头像
用户1212940
发布2019-06-20 13:48:40
7140
发布2019-06-20 13:48:40
举报
文章被收录于专栏:LambdaLambda

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1448844

一、cookie

http协议是无状态的协议,即一次数据交互完成后,服务器与客户端断开连接,并不会记录此次会话的状态,所以出现了cookie,用于跟踪交互双方的会话状态。

cookie的内容:采用key1=value1;key1=value1...键值对的方式存储,键名可以自定义,但是有部分键名为保留字段,如expires、path等;

cookie的过期时间:使用键名expires设置;

cookie的路径:使用键名path,它指定与cookie关联在一起的网页。在默认的情况下cookie会与创建它的网页、该网页处于同一目录下的网页以及与这个网页所在目录下的子目录下的网页关联。

1)设置cookie

javascript view plain copy

  1. document.cookie="fname=suifeng;lname=nifeng";

2)读取cookie

i.获取cookie的内容

javascript view plain copy

  1. var data = document.cookie;

ii.解析cookie

方式1:截取字符串

判断"key="字符串的位置,然后使用substring或者substr方式截取字符串,然后判断";",余下该段则为value。代码如下:

javascript view plain copy

  1. function getCookieValue(key){
  2. var data = document.cookie;
  3. var index = data.indexOf(key + "=");
  4. return (index === -1) ? false : data.substring(index + key.length+1).split(";")0;
  5. }

方式2:使用正则表达式+json

javascript view plain copy

  1. function getCookieValue(key) {
  2. return JSON.parse("{\""+document.cookie.replace(/;\s+/gim,"\",\"").replace(/=/gim,"\":\"")+"\"}")key;
  3. }

iii.清除cookie

方式1:设置value为null(所有的)

方式2:设置过期时间为当前日期之前,比如1970.1.1

二、localStorage

长期存储数据,浏览器关闭后不丢失。

1.特点:数据永久存储,没有时间限制;大小限制5M;只存储字符串;

2.数据存取方式

i.getItem(key)获取数据

ii.setItem(key,value)设置数据

iii.removeItem(key)移除数据

iv.clear()清空数据

3.事件监听

javascript view plain copy

  1. function handleFunc(e) {
  2. //对象e为localStorage对象,chrome、firefox支持差,IE支持较好
  3. }
  4. window.addEventListener('storage',handleFunc,false);
  5. window.attachEvent('onstorage',handleFunc);

三、sessionStorage

和localStorage差不多,不多赘述。

四、他们之间的区别(对比)

相同点:都存储在客户端

不同点:

1)存储大小

i.cookie数据大小不能超过4k;

ii.sessionStorage和localStorage可以达到5M或者更大;

2)有效时间

localStorage存储持久数据,浏览器关闭后数据不会丢失,除非主动删除数据;

sessionStorage数据在当前浏览器窗口关闭后自动删除;

cookie在设置的cookie过期时间之前一直有效。默认关闭浏览器自动删除;

3)与服务器的交互

i.cookie的数据会自动传递到服务器,服务器也可以cookie到客户端。cookie是客户端和服务端数据交互的媒介之一。

ii.sessionStorage和localStorage不会自动把数据发给服务器,仅保存在本地。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档