javaScript有三种数据存储方式,分别是:

  • sessionStorage
  • localStorage
  • cookier

1. sessionStorage

  • sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除;
  • setItem(key,value) 设置数据
  • getItem(key) 获取数据
  • removeItem(key) 移除数据
  • clear() 清除所有值
<script>// 添加数据window.sessionStorage.setItem("name","李四")window.sessionStorage.setItem("age",18)// 获取数据console.log(window.sessionStorage.getItem("name")) // 李四// 清除某个数据window.sessionStorage.removeItem("gender")// 清空所有数据window.sessionStorage.clear()
</script>

2. localStorage

  • localStorage 是 HTML5 标准中新加入的技术,用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除;
  • localStorage和sessionStorage最大一般为5MB,仅在客户端(即浏览器)中保存,不参与和服务器的通信;
  • setItem(key,value) 设置数据
  • getItem(key) 获取数据
  • removeItem(key) 移除数据
  • clear() 清除所有值
<script>// 添加数据window.localStorage.setItem("name","张三")window.localStorage.setItem("age",20)window.localStorage.setItem("gender","男")// 获取数据console.log(window.localStorage.getItem("name")) // 张三// 清除某个数据window.localStorage.removeItem("gender")// 清空所有数据window.localStorage.clear()
</script>

3. cookier

  • 简介
    Cookie 是一些数据, 存储于你电脑上的文本文件中,用于存储 web 页面的用户信息
    Cookie 数据是以键值对的形式存在的,每个键值对都有过期时间。如果不设置时间,浏览器关闭,cookie就会消失,当然用户也可以手动清除cookie
    Cookie每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
    Cookie内存大小受限,一般每个域名下是4K左右,每个域名大概能存储50个键值对
  • 基本操作
    通过访问document.cookie可以对cookie进行创建,修改与获取。
    默认情况下,cookie 在浏览器关闭时删除,你还可以为 cookie的某个键值对 添加一个过期时间
    如果设置新的cookie时,某个key已经存在,则会更新这个key对应的值,否则他们会同时存在cookie中
<script>// 设置cookiedocument.cookie = "username=orochiz"document.cookie = "age=20"// 读取cookievar msg = document.cookieconsole.log(msg) // username=orochiz; age=20// 添加过期时间(单位:天)var d = new Date() // 当前时间 2019-9-25var days = 3       // 3天d.setDate(d.getDate() + days)document.cookie = "username=orochiz;"+"expires="+d// 删除cookie (给某个键值对设置过期的时间)d.setDate(d.getDate() - 1)console.log(document.cookie)
</script>

总结

相同点:都保存在浏览器端,可以下图位置查看储存的信息

不同点

①传递方式不同

cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。

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

②数据大小不同

cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。

sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

③数据有效期不同

sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;

localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;

cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

④作用域不同

sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;

localStorage 在所有同源窗口中都是共享的;

cookie也是在所有同源窗口中都是共享的。

Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。

Web Storage 的 api 接口使用更方便。

JavaScript本地储存:localStorage、sessionStorage、cookie相关推荐

  1. 本地储存 localstorage sessionstorage 的兼容性,API,特点

    在开发中发现cookie储存会在http请求头中,大大影响了数据请求交互. 现在h5中提供了新的解决方式(API) 存储方式: 1.本地储存 localstorage & sessionsto ...

  2. 浏览器缓存 HTTP缓存-CDN缓存-localstorage/sessionstorage/cookie

    文章目录 浏览器缓存 面试题 概述 HTTP缓存 -提高二次请求响应速度 HTTP的缓存控制,如何设置缓存策略 CDN缓存 -提高首次请求资源的响应速度 CDN的核心功能 CDN的基本原理 local ...

  3. 客户端 localStorage, sessionStorage, cookie 的区别

    SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对! 区别在于前两者属于WebStorage,创建它们的目的便是存 ...

  4. Vue-浏览器本地储存(sessionStorage、localStorage)

    1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样) 2.浏览器端通过WindowsessionStorage和WindowlocalStorage属性来实现本地存储机制.后者会保存网页历史浏 ...

  5. JavaScript 本地存储、sessionStorage和localStorage

    文章目录 本地存储特性 window.sessionStorage window.localStorage 案例:记住用户名 本地存储特性 window.sessionStorage 存储数据: se ...

  6. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    2019独角兽企业重金招聘Python工程师标准>>> 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStorage存储一些数据,相比最多能 ...

  7. H5页面 用户启动无痕浏览本地储存 localstorage 清楚数据

    移动端开发时,如果用户浏览器启用了无痕浏览,那么本地存储信息就会失效,会导致页面信息报错 解决办法: 先判断是否能适用 localStorage.setItem 如果不行在适用  cookie coo ...

  8. 使用Vue 2.0+本地储存,留言板

    留言板思路 // 把对象添加到数组的最前面  unshift // 数据与表单进行绑定 v-model <!DOCTYPE html> <html><head>&l ...

  9. [JavaScript] Cookie,localStorage,sessionStorage概述

    Cookie Cookie 是一些数据, 存储于你电脑上的文本文件中,当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息.Cookie 的作用就是存储 web 页面 ...

最新文章

  1. 单片机外包公司可以去吗?学好单片机能接私活吗?
  2. C++ const 理解
  3. flask 检测post是否为空_使用Flask搭建一个校园论坛-4
  4. Python基础班---第一部分(基础)---Python基础知识---第一个Python程序
  5. 关闭浏览器网页触发事件_浅析浏览器渲染和 script 加载
  6. python编程项目中遇到的困难_python开发中遇到的常见问题,你们又是如何解决的呢?如何快速的学好python,有没有什么小技巧?...
  7. 实现贝叶斯分类器_从头开始在Python中实现高斯朴素贝叶斯
  8. 今晚7点,NVIDIA专家深度解析全新推荐系统解决方案Merlin
  9. Excel的导入与导出(POI)
  10. Java EE Servlet 几个path
  11. 基于javaweb+JSP+Servlet火车票网上订票系统(前台、后台)
  12. c语言自学教程——数组
  13. OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  14. 基于PHP的驾校预约管理系统
  15. python文本编辑器_python最好的ide和文本编辑器
  16. nuxt.js实战asyncdata服务端渲染
  17. 高频小信号谐振放大器【Multisim】【高频电子线路】
  18. 计算语言学课程笔记(一)
  19. cisco 产品销售手册
  20. JAVA毕设项目翔隆生鲜超市进货管理系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 高中生开发 Chrome 插件,帮助色盲患者更为清晰的看到网上图片
  2. Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址
  3. 《CoCoNuT: Combining Context-Aware Neural Translation Models using Ensemble for Program Repair》论文笔记
  4. python3长整型怎么用_python3有长整型吗
  5. 计算机数据管理的发展分5个阶段,数据管理技术的发展主要经历了哪几个阶段...
  6. 工业互联网或许并非是5G的救命稻草
  7. 简单两步解决nginx+php 的高并发502问题(nginx限流,定时重启php-fpm)
  8. 人大金仓Kingbase 命令行/ksql 导出表里数据
  9. 【论文翻译】YOLOv2:YOLO9000_Better, Faster, Stronger
  10. 26-tcp可靠传输——停止等待协议