对本地存储的有效期的理解
本地存储是一种在Web开发中常用的客户端存储数据的方式,它可以让网页应用程序在用户的浏览器中存储和检索数据,而无需依赖服务器来保存信息。本地存储的有效期是指数据存储在用户的设备上可以被访问和保留的时间段。在本地存储中,有两种主要的机制来控制数据的有效期:持久性本地存储和会话性本地存储。
持久性本地存储:
持久性本地存储指的是数据可以在用户的设备上长期保留,即使用户关闭浏览器或重新启动设备,数据仍然存在。这种本地存储的有效期是相对较长的,通常由开发者来控制和管理。
用法:持久性本地存储通常使用Web Storage或IndexedDB来实现。Web Storage包括LocalStorage和SessionStorage,其中LocalStorage的数据可以长期存储,而SessionStorage的数据在会话结束时被清除。
LocalStorage的用法:
// 存储数据
localStorage.setItem('username', 'JohnDoe');// 获取数据
const username = localStorage.getItem('username');// 删除数据
localStorage.removeItem('username');
IndexedDB的用法:
// 打开数据库
const request = window.indexedDB.open('myDatabase', 1);request.onsuccess = (event) => {const db = event.target.result;// 执行数据库操作
};
注释:持久性本地存储通常用于存储用户偏好设置、应用程序状态信息等,这些数据可以在用户多次访问应用时保留。
会话性本地存储:
会话性本地存储是指数据只在用户浏览器会话期间有效,一旦用户关闭浏览器或会话结束,数据就会被清除。这种本地存储的有效期是相对较短的,适用于临时存储会话数据。
用法:会话性本地存储通常使用Cookie或SessionStorage来实现。Cookie是一种小型文本文件,可以存储在用户设备上,而SessionStorage的数据在浏览器会话结束时被清除。
Cookie的用法:
// 设置Cookie
document.cookie = "username=JohnDoe; expires=Wed, 31 Oct 2023 23:59:59 UTC; path=/";// 读取Cookie
const cookieValue = document.cookie;// 删除Cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/";
SessionStorage的用法:
// 存储数据
sessionStorage.setItem('cartItems', JSON.stringify(cartData));// 获取数据
const cartItems = JSON.parse(sessionStorage.getItem('cartItems'));// 清除数据
sessionStorage.removeItem('cartItems');
注释:会话性本地存储适用于存储临时状态、购物车内容等,这些数据在用户离开网站或关闭浏览器后不再需要保留。
总结: 本地存储提供了一种在用户设备上存储数据的方法,其有效期可以根据开发需求来控制。持久性本地存储适用于长期保存数据,而会话性本地存储适用于短期或临时保存数据。开发者应根据数据的重要性和敏感性来选择适当的本地存储方式,并确保对数据的访问和清除进行适当的管理和安全措施。
相关文章:
对本地存储的有效期的理解
本地存储是一种在Web开发中常用的客户端存储数据的方式,它可以让网页应用程序在用户的浏览器中存储和检索数据,而无需依赖服务器来保存信息。本地存储的有效期是指数据存储在用户的设备上可以被访问和保留的时间段。在本地存储中,有两种主要的…...
蓝桥杯-02-蓝桥杯Java组考点与14届真题
文章目录 蓝桥杯Java组考点与14届真题参考资源Java组考点1. 组别2. 竞赛赛程3. 竞赛形式4. 参赛选手机器环境5. 试题形式5.1. 结果填空题5.2. 编程大题 6. 试题考查范围7. 答案提交8. 评分9. 样题样题 1:矩形切割(结果填空题)样题 2ÿ…...
门户网站二级等保评测问题,服务器漏洞问题解决办法
二级等保查出来的服务器问题 操作前可在自己服务器测试一下,看看有没有用 1.服务器定时更换密码 永久(需重启) vim /etc/login.defs PASS_MAX_DAYS 90 # 密码最长过期天数 PASS_MIN_DAYS 0 # 密码最小过期天数 PASS_MIN_LEN 10 # 密码…...
NPDP考前注意事项,这些细节你可要注意!
产品经理国际资格产认证(NPDP)2023年考试将于2023年12月2日(本周六)进行,你准备好了吗? 考试详情 考试时间:2023年12月2日 上午9:00-12:30 考试题型:200题,单选题。 考…...
八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网络地址转为内部网络地址,从而实现通过英特网可以访问局…...
C语言贪吃蛇(有详细注释)
这个贪吃蛇是在比特特训营里学到的,同时我还写了用EasyX图形库实现的图形化贪吃蛇,含有每个函数的实现以及游戏中各种细节的讲解,感兴趣的可以去看一看。 贪吃蛇小游戏 实现效果 以下就是源码,感兴趣的小伙伴可以cv自己玩一玩改…...
MUI框架从新手入门【webapp开发教程】
文章目录 MUI -最接近原生APP体验的高性能前端框架APP开发3.25 开发记录miu框架介绍头部/搜索框:身体>轮播图轮播图设置数据自动跳转:九宫格图片九宫格图文列表底部选项卡按钮选择器手机模拟器 心得与总结:MUI框架在移动应用开发中的应用M…...
HNU-计算机网络-讨论课2
第二次 有关网络智能、安全以及未来网络的讨论 一、必选问题(每组自由选择N个,保证组内每人负责1个) 网络的发展促进信息的传播,极大提高了人类的感知能力,整个世界都被纳入人类的感知范围。但人们对信息系统以及数据…...
西南科技大学信号与系统A实验一(信号的产生与时域运算)
目录 一、实验目的 二、实验原理 三、实验内容 四、思考题 一、实验目的 1、 掌握用matlab软件产生基本信号的方法。 2、 应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算 二、实验原理 (一) 产生信号波形的方法 利用Matlab软件的信号处…...
代码随想录二刷 |字符串 |翻转字符串里的单词
代码随想录二刷 |字符串 |翻转字符串里的单词 题目描述解题思路 & 代码实现移除多个空格将整个字符串翻转将每个单词翻转 题目描述 151.翻转字符串里的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成…...
低调使用。推荐一个 GPT4 Turbo、Vision、GPTs、DELL·E3 等所有最新功能同步可用国内网站
在 11 月 6 日,万众期待的 OpenAI DevDay,ChatGPT 发布了一系列新的产品,其中推出了 GPT4 Turbo,并且将GPT4 Vision,DELLE3 等等能力全部集合到一起,不需要再分开使用,原来的局限的文本聊天也进…...
基于视觉传感器的自主扫雷机器人设计与实现
摘要: 在当今的世界安全形势下,扫雷小车的出现可以减少各国人员在扫雷过程中的人员伤亡,扫雷小车实用性能强更适合在军事化领域或者是民用领域上应用。让它具有光明的发展前景。针对这一情况,本毕业设计就对自主扫雷小车进行研究…...
计算机新建盘符和重新分配盘符的大小
一、新建盘符 有些电脑刚买来时候,只有一个C盘分区,此时最好增加几个分区方便使用。 注意:分区操作要慎重,不要轻易去试。这里只针对购买的电脑厂家未做分区,只有一个C盘的情况。 如果自己电脑的分区本身已经满足你…...
windows 查看mysql的错误日志
查找错误日志文件存储路径 用到的软件:everything 官网 voidtools 下载路径 https://www.voidtools.com/Everything-1.4.1.1024.x64-Setup.exe 直接点击下载即可 运行效果如下 我们知道mysql有个配置文件是my.ini,里面配置了相关信息 我们需要先…...
java多线程CountDownLatch简单测试
学习java多线程,请同时参阅 Java多线程 信号量和屏障实现控制并发线程数量,主线程等待所有线程执行完毕1 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后再继续执行。当所有的线程都已经完成任务,然后在CountDownLatch上…...
npm,yarn,pnpm 清理缓存
目录 1,为什么要清理缓存1,缓存文件太多,影响系统运行2,不同源会有区别 2,命令2.1,npm2.2,yarn2.3,pnpm 1,为什么要清理缓存 1,缓存文件太多,影响…...
【数据结构】二叉排序树(c风格、结合c++引用)
目录 1 基本概念 结构体定义 各种接口 2 二叉排序树的构建和中序遍历 递归版单次插入 非递归版单次插入 3 二叉排序树的查找 非递归版本 递归版本 4 二叉排序树的删除(难点) 1 基本概念 普通二叉排序树是一种简单的数据结构,节点的值…...
SpringCloudSleuth+Zipkin 整合及关键包汇总
背景 整合了一下 SpringCloudSleuth Zipkin,本来是很简单的东西,但是最终导出依赖包时没注意,导致目标服务始终没有被纳入 Zipkin 的链路追踪中,本文记录这个过程及关键依赖包。 部署zipkin 官网下载最新的 zipkin 可执行包&a…...
腾讯面试笔试题2023.11.30
给定一个由整数组成的非空数组所表示的非负整数如[1,2,3],在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 (要求只能操作数组,不…...
cesium 融合视频
0 如果是文件,那相当的简单 和untiy 一样,可以添加材质后,将image 直接给材质赋值上,其中abcd 是四个点,这四个点要经过计算 <video id"video" style"display:none" controls loop autoplay&…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
