webStorage

2023-05-16

cookie

在webStorage出现之前在浏览器端存储数据通常使用cookie。cookie是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

客户端根据服务器端的set-cookie保存状态,客户端再往服务器发送请求时,客户端会自动在请求报文中加入cookie值发送出去,服务器端发现客户端发送过来的cookie后,会去检查究竟从哪一个客户端发送来的请求,然后对比服务器上的记录,最后得到之前的状态信息。

但是使用cookie存储数据存在一些限制:

  • cookie是与特定域绑定的,cookie中的信息只对被认可的接收者访问,不能被其他域访问
  • 浏览器中存储的cookie不能超过300个
  • 每个cookie存储的数据大小不能超过4kb
    如果cookie总数超过了单个域的上限,浏览器就会删除之前设置的cookie,不同的浏览器cookie的限制也不相同。为了增强浏览器端存储数据的能力,W3C在HTML5中添加了webStorage规范。

webStorage的出现

webStorage是HTML提出的一个用于浏览器端存储数据的规范。

webStorage提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式。
WebStorage的目的是解决通过客户端存储不需要频繁发送回服务器的数据时使用cookie的问题。

WebStorage 提供了两个对象localStorage和sessionStorage,这两种浏览器存储API提供了在浏览器中不受页面刷新影响而存储数据的两种方式。

localStorage

localStorage是客户端持久存储数据的机制。要访问同一个localStorage对象,页面必须来自同一个域(子域不可以)、在相同的端口上使用相同的协议。

sessionStorage

sessionStorage对象只存储会话数据,这意味着数据只会存储到浏览器关闭。这跟浏览器关闭时会消失的会话cookie类似。存储在sessionStorage中的数据不受页面刷新影响,可以在浏览器崩溃并重启后恢复。

localStorage和sessionStorage都是Storage的实例对象,因此具有相同的方法:

方法名描述
setItem(key,value)设置指定key和value
getItem(key)获取指定key的值
removeItem(key)删除指定key的值
clear()清空storage
key(index)根据数据存储的索引获取对应的键名

sessionStorage和localStorage的区别

localStorage提供的是一种永久的存储方式,浏览器关闭之后localStorage的数据仍然存在

sessionStorage提供的是一种本次会话的存储,浏览器关闭之后sessionStorage数据会被删除

webStorage的限制

与其他客户端数据存储方案一样,WebStorage也有限制。具体的限制取决于特定的浏览器。
不同浏览器给localStorage和sessionStorage设置了不同的空间限制,但大多数会限制为每个源5MB。

存储事件

每当Storage对象发生变化时,都会在文档上触发storage事件。使用属性或setItem()设置值、使用delete或removeItem()删除值,以及每次调用clear()时都会触发这个事件。

在同一个页面内发生的改变不会起作用——在相同域名下的其他页面(如一个新标签或 iframe)发生的改变才会起作用。
我们可以这样监听storageEvent:

window.addEventListener('storage',(e) => {
	console.log(e);
});

对于sessionStorage和localStorage上的任何更改都会触发storage事件,但storage事件不会区分这两者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webStorage 的相关文章

  • 【数字图像处理】MATLAB实现直方图均衡化

    直方图均衡化的MATLAB实现 目录 1 回顾 直方图均衡化2 代码实现 1 回顾 直方图均衡化 基本原理 直方图均衡化方法的基本思想是 xff1a 对在图像中像素个数多的灰度级进行展宽 xff0c 而对像素个数少的灰度级进行缩减 xff0
  • 【NCC】之一:从Pearson相关系数到模板匹配的NCC方法

    文章目录 lt center gt NCC Normalized Cross Correlation 1 Pearson相关系数 2 协方差 covariance 3 方差 variance 4 模板匹配中的NCC方法5 实现过程6 测试结
  • ST-Link使用和配置总结

    xff08 1 xff09 ST Link实物参考图 xff08 2 xff09 ST Link 引脚介绍和接线方式 ST Link SWD引脚连接方式 参考链接1 xff1a https blog csdn net xinghuanmei
  • CentOS安装CMake

    文章目录 1 问题背景2 前言3 步骤 1 问题背景 最近想玩玩CLion远程调试JDK源码 xff0c 需要用到CMake xff0c 因此来安装 2 前言 需要先看CLion支持哪个版本的CMake xff0c 再下载对应的版本 本文采
  • 跟丛博,学习CMMI2.0

    CMMI2 0 xff0c 三天的学习非常高强度 xff0c 学习了两门课 xff1a 2天的Foundations of Capability和1天的Building Development Excellence 内容多 xff0c 讲义
  • strtok的实现与原理

    该函数包含在 34 string h 34 头文件中 函数原型 xff1a char strtok char str constchar delimiters 函数功能 xff1a 切割字符串 xff0c 将str切分成一个个子串 函数参数
  • Java入门小知识(++a和a++的区别)

    关于java中 43 43 a和a 43 43 的区别 与C语言中的一致 43 43 a xff1a 先进行自增运算 xff0c 在进行表达式运算 a 43 43 xff1a 先进行表达式运算 xff0c 在进行自增运算 下面用一个实例来加
  • Linux VNC搭建方法

    首先介绍下VNC xff0c VNC是类似于向日葵的远程桌面控制工具 xff0c 非常好用 本文详细介绍了VNC的搭建方法与使用教程 yum安装指令 yum install y tigervnc server 复制服务文件放到配置文件夹下
  • (Linux)Ubuntu查看系统版本

    uname a 查看操作系统的发行版号和操作系统版本 Command uname a Result Linux SERVER 5 19 0 35 generic 36 Ubuntu SMP PREEMPT DYNAMIC Fri Feb 3
  • aes-128 速度测试

    官方白皮书 xff1a Intel Advanced Encryption Standard AES New Instructions Set pdf https software intel com zh cn articles inte

随机推荐

  • 【Feature Denosing】Feature Denoising for Improving Adversarial Robustness

    摘要 对图像分类系统的对抗攻击 xff0c 给卷积网络带去挑战的同时 xff0c 也提供了一个理解他们的机会 对抗扰动使得网络提取的特征包含噪声 受这个观察启发 xff0c 我们执行feature denoising 具体来说 xff0c
  • Tomcat8.5配置https启动报空指针错误

    Tomcat8 5配置https启动报空指针错误 报错信息tomcat SSL配置Tomcat8 5 8及以上而外配置 SSL别名获取 报错信息 报错代码 span class token number 02 span span class
  • python琐事系列1:关于如何真正的在vscode用gpu跑代码

    你们要的完整代码 xff1a span class token punctuation span span class token comment 使用 IntelliSense 了解相关属性 span span class token c
  • 影响力最大化 CELF 成本效益延迟转发算法

    文章目录 简介CELF Cost Effective Lazy Forward Algorithm算法原理算法实现代码实现实例测试 简介 对于影响力最大化问题 xff0c 我以前写过几个blog 影响力最大化 IC模型 43 贪心算法 影响
  • 单片机对底层寄存器的操作

    最近项目用到了国产的一款单片机 xff0c 没有例程的支持 xff0c 需要自己从头开始写底层 又感受到了自己本科刚学习51的时候的浮躁 xff0c 不懂得如何操作底层的寄存器 xff0c 只是一味的抄写别人的例程 xff0c 然后进行简单
  • 如何使用策略模式,优化代码里的if-else?

    什么是策略模式 策略模式属于行为型模式 xff0c 类的行为可以根据不同的策略在运行中更改 策略模式的作用 策略模式主要解决了使用if else所带来的复杂性和难以维护的问题 策略模式的架构图 Strategy 策略接口 xff1a 定义抽
  • VNC 连接桌面灰色

    在使用VNC Veiwer连接腾讯云的过程中 xff0c VNC总是灰色的 大多数博客都说是 修改配置文件 vnc xstartup 尝试了很久无果 百度了下面这个错误 Can t find file root vnc VM 0 15 ub
  • C#控件学习--选择类控件

    下拉组合框控件 xff08 ComboBox控件 xff09 创建只可以选择的下拉框 通过设置控件的DropDownStyle属性 xff0c 可以将ComboBox控件设置为可以选择的下拉框 DropDownStyle 属性有3个属性值
  • 云计算之弹性伸缩

    案例1 xff1a 2009年 xff0c 第一次淘宝双十一活动 xff0c 每秒订单只有400笔 xff0c 支付达到极限每秒200笔 2015年淘宝双十一 xff0c 每秒订单创建24万笔 xff0c 支付达到了每秒18 59万笔 每秒
  • Vue2.x与3.x生命周期

    生命周期 一个框架从创建到销毁一系列的过程叫生命周期 在生命周期的过程中会执行相应的函数叫钩子函数 生命周期钩子 61 生命周期函数 61 生命周期事件 过程 beforeCreate 开始创建一个vue实例 初始化vue实例 xff0c
  • 国内银行卡BIN号(Bank Identification Number)速查简表

    转载 xff1a https blog csdn net qq 37960324 article details 82981824 国内银行卡BIN号 Bank Identification Number 速查简表 银行名称 银行卡 卡BI
  • 判断一个对象是否为数组的4种方法

    问题描述 在js中判断数据类型通常使用typeof xff0c 但是typeof在判断数组和对象时的结果都是object console span class token punctuation span span class token
  • 去重三种方法

    数组去重三种方法 问题情境 去除数组中重复的元素 输出不重复的元素数组 思路方向 将数组中重复的元素删除将数组中不重复的元素取出利用其它 JavaScript 特性和 API 直接去重 这一思路中有些 API 涉及ES6中的某些知识暂不提及
  • 百度地图API简介

    百度地图API 简介 百度地图API是百度地图开放平台面向广大政府 企业 互联网等开发者开放的免费地图服务 拥有定位 地图 导航 轨迹 路况 路线规划 搜索 xff0c 七大基础地图服务能力 xff0c 并将七大服务能力开放给各行业开发者使
  • svg和canvas的区别简析

    Canvas和SVG是html5中支持2种可视化技术 xff0c 都是可以在画布上绘制图形和放入图片 下面来介绍和分析一下他们 一 Canvas 和 SVG 简介 1 什么是Canvas xff1f Canvas 是H5新出来的标签 Can
  • 微信小程序:实现长按扫描二维码

    小程序内置扫描二维码 image 使用小程序提供的image组件 xff0c image组件上有一个show menu by longpress的属性 xff0c 设置为true lt image show menu by longpres
  • 微信小程序:小程序常见问题及解决方案

    文章目录 原生组件显示在遮罩层上面的问题scroll view高度适配问题表单控件聚焦后页面上推问题小程序web view页面返回到小程序页面 原生组件显示在遮罩层上面的问题 在小程序中使用原生的表单组件时 xff0c 在有弹出框出现的情况
  • Echarts:惊艳的Map

    大家在网上看天气预报的时候应该就看到过在中国地图上显示不同省份的温度 xff0c 并根据温度的高低显示不同的颜色 xff0c 又或者看到各个省份的新冠肺炎新增人数 xff0c 根据不同的新增人数显示不同的颜色之类的图像 这些 xff0c 使
  • 微信小程序性能优化

    文章目录 小程序优化首屏加载优化白屏优化运行时性能渲染性能优化页面切换优化 小程序优化 首屏加载优化 删除无用代码 资源文件 开启按需加载组件 span class token comment app json span span clas
  • webStorage

    cookie 在webStorage出现之前在浏览器端存储数据通常使用cookie cookie是某些网站为了辨别用户身份 xff0c 进行Session跟踪而储存在用户本地终端上的数据 xff08 通常经过加密 xff09 xff0c 由