JavaScript本地储存:localStorage、sessionStorage、cookie
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相关推荐
- 本地储存 localstorage sessionstorage 的兼容性,API,特点
在开发中发现cookie储存会在http请求头中,大大影响了数据请求交互. 现在h5中提供了新的解决方式(API) 存储方式: 1.本地储存 localstorage & sessionsto ...
- 浏览器缓存 HTTP缓存-CDN缓存-localstorage/sessionstorage/cookie
文章目录 浏览器缓存 面试题 概述 HTTP缓存 -提高二次请求响应速度 HTTP的缓存控制,如何设置缓存策略 CDN缓存 -提高首次请求资源的响应速度 CDN的核心功能 CDN的基本原理 local ...
- 客户端 localStorage, sessionStorage, cookie 的区别
SessionStorage, LocalStorage, Cookie这三者都可以被用来在浏览器端存储数据,而且都是字符串类型的键值对! 区别在于前两者属于WebStorage,创建它们的目的便是存 ...
- Vue-浏览器本地储存(sessionStorage、localStorage)
1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样) 2.浏览器端通过WindowsessionStorage和WindowlocalStorage属性来实现本地存储机制.后者会保存网页历史浏 ...
- JavaScript 本地存储、sessionStorage和localStorage
文章目录 本地存储特性 window.sessionStorage window.localStorage 案例:记住用户名 本地存储特性 window.sessionStorage 存储数据: se ...
- 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题
2019独角兽企业重金招聘Python工程师标准>>> 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStorage存储一些数据,相比最多能 ...
- H5页面 用户启动无痕浏览本地储存 localstorage 清楚数据
移动端开发时,如果用户浏览器启用了无痕浏览,那么本地存储信息就会失效,会导致页面信息报错 解决办法: 先判断是否能适用 localStorage.setItem 如果不行在适用 cookie coo ...
- 使用Vue 2.0+本地储存,留言板
留言板思路 // 把对象添加到数组的最前面 unshift // 数据与表单进行绑定 v-model <!DOCTYPE html> <html><head>&l ...
- [JavaScript] Cookie,localStorage,sessionStorage概述
Cookie Cookie 是一些数据, 存储于你电脑上的文本文件中,当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息.Cookie 的作用就是存储 web 页面 ...
最新文章
- 单片机外包公司可以去吗?学好单片机能接私活吗?
- C++ const 理解
- flask 检测post是否为空_使用Flask搭建一个校园论坛-4
- Python基础班---第一部分(基础)---Python基础知识---第一个Python程序
- 关闭浏览器网页触发事件_浅析浏览器渲染和 script 加载
- python编程项目中遇到的困难_python开发中遇到的常见问题,你们又是如何解决的呢?如何快速的学好python,有没有什么小技巧?...
- 实现贝叶斯分类器_从头开始在Python中实现高斯朴素贝叶斯
- 今晚7点,NVIDIA专家深度解析全新推荐系统解决方案Merlin
- Excel的导入与导出(POI)
- Java EE Servlet 几个path
- 基于javaweb+JSP+Servlet火车票网上订票系统(前台、后台)
- c语言自学教程——数组
- OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
- 基于PHP的驾校预约管理系统
- python文本编辑器_python最好的ide和文本编辑器
- nuxt.js实战asyncdata服务端渲染
- 高频小信号谐振放大器【Multisim】【高频电子线路】
- 计算语言学课程笔记(一)
- cisco 产品销售手册
- JAVA毕设项目翔隆生鲜超市进货管理系统(java+VUE+Mybatis+Maven+Mysql)
热门文章
- 高中生开发 Chrome 插件,帮助色盲患者更为清晰的看到网上图片
- Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址
- 《CoCoNuT: Combining Context-Aware Neural Translation Models using Ensemble for Program Repair》论文笔记
- python3长整型怎么用_python3有长整型吗
- 计算机数据管理的发展分5个阶段,数据管理技术的发展主要经历了哪几个阶段...
- 工业互联网或许并非是5G的救命稻草
- 简单两步解决nginx+php 的高并发502问题(nginx限流,定时重启php-fpm)
- 人大金仓Kingbase 命令行/ksql 导出表里数据
- 【论文翻译】YOLOv2:YOLO9000_Better, Faster, Stronger
- 26-tcp可靠传输——停止等待协议