首页 > 其他分享 >浏览器存储

浏览器存储

时间:2023-10-11 20:33:22浏览次数:44  
标签:username 存储 浏览器 sessionStorage cookie localStorage 数据

1. 使用

localStorage

// 存储数据
localStorage.setItem('username', 'John');
// 读取数据
const username = localStorage.getItem('username');
// 删除数据
localStorage.removeItem('username');

cookie

// 设置一个持久cookie
document.cookie = 'username=John; expires=Thu, 01 Jan 2025 00:00:00 UTC; path=/';
// 读取cookie
const cookies = document.cookie.split('; ');
const usernameCookie = cookies.find(cookie => cookie.startsWith('username='));
const username = usernameCookie ? usernameCookie.split('=')[1] : '';

sessionStorage

// 存储数据
sessionStorage.setItem('cart', JSON.stringify({ item: 'product', quantity: 2 }));
// 读取数据
const cart = JSON.parse(sessionStorage.getItem('cart'));
// 删除数据
sessionStorage.removeItem('cart');

2. 区别

  • 内存大小

    • localStorage 具有较大的存储容量(一般为5-10MB)。
    • cookie 通常限制每个cookie的大小为4KB。
    • sessionStoragelocalStorage相似,但也会受浏览器限制。
  • 生存周期

    • localStorage 数据永久存储,除非明确删除。
    • cookie 可以设置过期时间,可以是会话结束时失效(会话cookie)或在指定的日期时间后失效(持久cookie)。
    • sessionStorage 数据在当前会话期间有效,当会话结束时,数据被删除。
  • 存储内容限制

    • localStoragesessionStorage 通常可以存储字符串类型的数据,但可以通过JSON.stringifyJSON.parse来处理复杂的对象。
    • cookie 只能存储文本数据,需要进行编码和解码以存储和读取非文本数据。
  • 作用域

    • localStoragesessionStorage 同一域名下的不同页面可以共享相同的数据。
    • cookie 可以根据域名和路径设置不同的cookie,并且可以在不同的子域名之间共享,但有一些安全限制。

3. 使用场景

  • localStorage:适合长期存储用户数据,如用户首选项、本地缓存等。
  • cookie:适合存储短期数据,如会话标识、跟踪用户行为、身份验证令牌等。
  • sessionStorage:适合存储仅在当前会话期间有效的数据,如购物车数据或临时表单数据。

title: 浏览器存储
date: 2023-10-07 13:15:28
tags: [前端技术]

浏览器存储

1. 使用

localStorage

// 存储数据
localStorage.setItem('username', 'John');
// 读取数据
const username = localStorage.getItem('username');
// 删除数据
localStorage.removeItem('username');

cookie

// 设置一个持久cookie
document.cookie = 'username=John; expires=Thu, 01 Jan 2025 00:00:00 UTC; path=/';
// 读取cookie
const cookies = document.cookie.split('; ');
const usernameCookie = cookies.find(cookie => cookie.startsWith('username='));
const username = usernameCookie ? usernameCookie.split('=')[1] : '';

sessionStorage

// 存储数据
sessionStorage.setItem('cart', JSON.stringify({ item: 'product', quantity: 2 }));
// 读取数据
const cart = JSON.parse(sessionStorage.getItem('cart'));
// 删除数据
sessionStorage.removeItem('cart');

2. 区别

  • 内存大小

    • localStorage 具有较大的存储容量(一般为5-10MB)。
    • cookie 通常限制每个cookie的大小为4KB。
    • sessionStoragelocalStorage相似,但也会受浏览器限制。
  • 生存周期

    • localStorage 数据永久存储,除非明确删除。
    • cookie 可以设置过期时间,可以是会话结束时失效(会话cookie)或在指定的日期时间后失效(持久cookie)。
    • sessionStorage 数据在当前会话期间有效,当会话结束时,数据被删除。
  • 存储内容限制

    • localStoragesessionStorage 通常可以存储字符串类型的数据,但可以通过JSON.stringifyJSON.parse来处理复杂的对象。
    • cookie 只能存储文本数据,需要进行编码和解码以存储和读取非文本数据。
  • 作用域

    • localStoragesessionStorage 同一域名下的不同页面可以共享相同的数据。
    • cookie 可以根据域名和路径设置不同的cookie,并且可以在不同的子域名之间共享,但有一些安全限制。

3. 使用场景

  • localStorage:适合长期存储用户数据,如用户首选项、本地缓存等。
  • cookie:适合存储短期数据,如会话标识、跟踪用户行为、身份验证令牌等。
  • sessionStorage:适合存储仅在当前会话期间有效的数据,如购物车数据或临时表单数据。

标签:username,存储,浏览器,sessionStorage,cookie,localStorage,数据
From: https://www.cnblogs.com/shuangyou99/p/liu-lan-qi-cun-chu.html

相关文章

  • 修改docker默认存储路径方法总结
    默认情况下,docker镜像的默认存储路径是/var/lib/docker或其他根目录,有的服务器本身硬盘容量不足需要挂载到数据盘中,所以总结一下修改docker的默认路径,方法如下:先创建新的docker目录mkdir/home/docker以挂载home目录为例,此处也可另外挂载一块磁盘,把新的docker目录建在新磁盘上......
  • 基于 ACK Fluid 的混合云优化数据访问(三):加速第三方存储的读访问,降本增效并行
    作者:车漾前文回顾:本系列将介绍如何基于ACKFluid支持和优化混合云的数据访问场景,相关文章请参考:基于ACKFluid的混合云优化数据访问(一):场景与架构基于ACKFluid的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁在前一篇文章《搭建弹性计算实例与第三方存储的......
  • 微信浏览器环境H5使用扫一扫功能
    一、需求:1、微信浏览器环境H5使用扫一扫功能=>方案:引入wxjssdk,然后获取公众号的签名信息;再在config中配置;配置好了就能使用扫一扫api了2、短信链接内部实现扫一扫功能=>方案:使用inputaccpet=“image/*”,读取图片区识别,识别二维码数据后发送给后台|-->由于手机浏览器兼容性问......
  • Window 11中修改微软edge浏览器alt+tab切换标签而无法切换系统窗口的问题
    最近刚转手使用Edge浏览器的时候发现不能用alt+tab切换别的应用上,在浏览器设置上找了半天还是没有,最后离谱的在系统设置里面多任务窗口找到了这个设置。打开设置找到多任务处理,点开后里面第二项修改为不显示选项卡即可。......
  • 浏览器可直接访问 Dubbo、gRPC 后端微服务,Dubbo-js 首个alpha 版本来了!
    作者:蔡建怿基于Dubbo3定义的Triple协议,你可以轻松编写浏览器、gRPC兼容的RPC服务,并让这些服务同时运行在HTTP/1和HTTP/2上。DubboTypeScriptSDK[1]支持使用IDL或编程语言特有的方式定义服务,并提供一套轻量的APl来发布或调用这些服务。Dubbo-js已于9月份......
  • 基于 ACK Fluid 的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁
    作者:车漾前文回顾:本系列将介绍如何基于ACKFluid支持和优化混合云的数据访问场景,相关文章请参考:基于ACKFluid的混合云优化数据访问(一):场景与架构在前文《场景与架构》中,重点介绍ACKFluid支持混合云数据访问适用的不同应用场景和架构实现。在本文中会重点介绍如何通过ACKFl......
  • 群晖Synology存储空间管理器支持的RAID类型
    创建存储池时,先选择RAID类型。不同类型的RAID可提供不同级别的数据保护、存储功能及性能。SynologyNAS目前支持以下类型的RAID:Basic:使用一个硬盘来创建存储池。Basic存储池不提供数据冗余。JBOD*:至少合并两个硬盘来创建存储池。JBOD存储池不提供数据冗余。JBOD存储池......
  • oss存储类型转换及解冻(下)
    oss存储类型转换及解冻(下)这篇就干货满满了,搞了我一天多,差点把我老命送走,也差点把阿里客服搞吐血,各种问题各种问(为了快速出结果),给领导交待  上篇提到,归档后的文件是无法访问的(除去归档直读),也说到我把一个月的测试文件分了三批,对应三种类型。一、筛选不同类型的文件......
  • oss存储类型转换及解冻(上)
    oss存储类型转换及解冻研究了两天多的一个需求,今天终于告一段落了。话说8月底的时候,老板想知道阿里OSS冻结文件存储和解冻的费用,想把一年前的文件冻结起来,有必要才解冻。因为我们系统使用oss的容量增长比较快,1年已经增长到2T多了~~我当时给的回复是这样的:oss冻结文......
  • 13-io扩展技术与存储器映射扩展
    IO扩展技术与存储器映射扩展io扩展方式代码如下:#include<REGX52.H>voidDelay_ms(unsignedintxms){ unsignedinti,j; for(i=0;i<xms;i++){ for(j=0;j<299;j++); }}void_74HC138(unsignedcharn){ switch(n){ case4: P2=(P2&0x1f......