常见的前端存储有老朋友 cookie,短暂的 sessionStorage,和简单强大的localStorage

他们之间的区别有以下几点

1.. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

2. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

4. 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。

下面开始介绍如何使用


cookie

以下是我封装好的cookie函数,需要的朋友自行复制

  1. //创建cookie
  2. function setCookie(name, val, n) {
  3. var oDate = new Date();
  4. oDate.setDate(oDate.getDate() + n);
  5. document.cookie = name + "=" + val + ";expires=" + oDate;
  6. }
  7. //获取cookie
  8. function getCookie(name) {
  9. var str = document.cookie;
  10. var arr = str.split("; ");
  11. for(var i = 0; i < arr.length; i++) {
  12. var str1 = arr[i]; //"a=1" "b=2" "c=3"
  13. var arr1 = str1.split("=");
  14. if(arr1[0] == name) {
  15. return arr1[1];
  16. }
  17. }
  18. }
  19. //删除cookie
  20. function removeCookie(name) {
  21. setCookie(name, 1, -1);
  22. }

使用也很简单,调用函数即可

  1. setCookie('age','13',1);
  2. setCookie('age1','12',1);
  3. setCookie('age2','11',1);
  4.  
  5. console.log(getCookie("age1"));
  6. //removeCookie("age2");

可以看出,我创建了三个cookie值,分别是 age,age1,age2,值为 13,12,11,时间都为一天,路径为默认路径,这时,打开cookie即可看到我们存的三个值。

代码第五行,调用封装函数 getCookie(“age1”),可以在控制台,直接打印12。获取cookie值时,直接输入 name即可获取

代码第六行,调用封装函数 removeCookie(),直接 传参 name即可删除,需要删除的cookie值,当然也可以在浏览器中手动删除某一项,删除cookie我利用的是修改过期时间删除的方法,

需要注意的是我用的删除cookie是调用 创建函数 setCookie() ,把时间修改为-1.删除


localStorage 

localStorage,使用方法比较简单,下面介绍使用

  1. localStorage.setItem("name","景天")
  2. //这只是简单的存一个键值对,如果想要存数组对象就需要格式转化
  3. //例如
  4. localStorage.setItem("msg",[{"name":"雪见","age":22},{"name":"重楼","age":500}])

这时,我们会发现 第一行代码很正常,

而第四行代码已经不能正常显示了

这就是格式的问题,我们就需要格式化

  1. localStorage.setItem("msg",JSON.stringify([{"name":"雪见","age":22},{"name":"重楼","age":500}]))

这时,我们就可以正常使用了

以上是存 localStorage。

取 localStorage,使用 localStorage.getItem()

  1. console.log(localStorage.getItem("msg"))
  2. //[{"name":"雪见","age":22},{"name":"重楼","age":500}]
  3. console.log(JSON.parse(localStorage.getItem("msg")))
  4. // (2)[{…}, {…}]

取的时候也需要格式转换,JSON.parse();

可以根据需要自行使用。

删除的方法也很简单

  1. //数据删除
  2. localStorage.removeItem("name")
    //可以看到后台数据直接删除

sessionStorage

使用方法基本类似与 localStorage,只是存在时间长短的问题

两者不同在文章头部有项细介绍,在此处就不在测试

只需把    localStorage  改成  sessionStorage  即可


以上就是我对这三种存储的理解

本地存储cookie,localStorage,sessionStorage的更多相关文章

  1. H5新特性 本地存储---cookie localStorage sessionStorage

    本地存储的作用 :避免登录网站时,用户在页面浏览时重复登录,也可以实现快速登录,一段时间内保存用户的登录效果,提高页面访问速率 在html5中提供三种数据持久化操作的方法: 1.cookie 可看作是 ...

  2. html5本地存储(localStorage)使用介绍

    1.html5几种存储形式 本地存储(localStorage && sessionStorage) 离线缓存(application cache) indexedDB 和 webSQ ...

  3. web 本地存储 (localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage,cookie) localStorage(长期储存):即使关闭浏览器数据也不会删除,除非使用localStorage.cle ...

  4. [web 前端] web本地存储(localStorage、sessionStorage)

    cp from : https://blog.csdn.net/mjzhang1993/article/details/70820868 web 本地存储 (localStorage.sessionS ...

  5. web本地存储(localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage) 说明 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:l ...

  6. html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例

    这篇文章主要介绍了html5本地存储的localstorage .本地数据库.sessionStorage简单使用示例,需要的朋友可以参考下 html5的一个非常cool的功能,就是web stora ...

  7. (转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

    原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage ...

  8. Cookie localStorage sessionStorage

    三者的异同 特性 Cookie localStorage sessionStorage 数据的生命期 可设置失效时间,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下(tab标签页)有 ...

  9. 大家都能看得懂的源码 - 如何封装 cookie/localStorage/sessionStorage hook?

    本文是深入浅出 ahooks 源码系列文章的第九篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 今天来看看 ahooks 是怎么封装 cookie/localSt ...

随机推荐

  1. SSD 页、块、垃圾回收

    基本操作: 读出.写入.擦除: 因为NAND闪存单元的组织结构限制,单独读写一个闪存单元是不可能的.存储单元被组织起来并有着十分特别的属性.要知道这些属性对于为固态硬盘优化数据结构的过程和理解其行为来 ...

  2. openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)

    待解决:图形中当改变分组时,图例不正确            存储比率计算时,分组合计不正确 wizard:过滤条件向导,用于输入过滤条件 wizard/sale_chart.py # -*- cod ...

  3. 网络通信框架之okHttpUtils

    okHttpUtils封装库志支持: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 上传下载的进度回调 加载图片 支持请求回调,直接返回对象.对象集合 支持session的保 ...

  4. Linux基础(二)之命令

    01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls - ...

  5. golang(07)结构体介绍

    golang支持面向对象的设计,一般支持面向对象的语言都会有class的设计,但是golang没有class关键字,只有struct结构体.通过结构体达到类的效果,这叫做大成若缺,其用不弊. stru ...

  6. java:shiroProject

    1.backend_system Maven Webapp:   LoginController.java: package com.shiro.demo.controller; import org ...

  7. java去除数组中的空值

    public String[] deleteArrayNull(String []string) { String []array = string; // 声明一个list List<Stri ...

  8. 【神经网络与深度学习】GLog使用笔记

    环境: XPsp3 vs2005 glog-0.3.3 http://download.csdn.net/detail/chenguangxing3/6661667 编译: glog-0.3.3里面有 ...

  9. 【VS开发】设备控制台 (DevCon.exe) 命令

    设备控制台 (DevCon.exe) 命令 DevCon (DevCon.exe) 是一个命令行工具,可以显示有关运行 Windows 的计算机上设备的详细信息.还可以使用 DevCon 启用.禁用. ...

  10. PHP Excel导入

    public function importFile() { $file = request()->file('file'); $params = $this->request->p ...