数据持久化与临时存储的对决:localStorage 与 sessionStorage(上)

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

  • 一、引言
    • 介绍 Web 存储的概念和作用
  • 二、 `localStorage` 和 `sessionStorage` 的基础知识
    • 解释 `localStorage` 和 `sessionStorage` 的定义和区别
    • 演示如何在浏览器中访问和使用 `localStorage` 和 `sessionStorage`
  • 三、 `localStorage` 的使用场景和示例
    • 探讨 `localStorage` 在保存用户偏好设置、缓存数据等方面的应用
    • 提供一个使用 `localStorage` 保存网页字体样式的示例

一、引言

介绍 Web 存储的概念和作用

Web 存储是一种在浏览器中存储数据的技术,它允许网站将数据存储在用户的浏览器中,以便在后续的访问中使用。Web 存储通常分为两种类型:

  • 本地存储
  • 会话存储

本地存储是指将数据存储在用户的计算机上,即使浏览器关闭后数据仍然存在。这使得网站能够在用户下次访问时更快地加载数据,并且可以记住用户的偏好设置和登录状态等信息。本地存储通常使用 HTML5 的localStoragesessionStorage属性来实现。

会话存储是指将数据存储在浏览器的会话中,当浏览器关闭时数据会被清除。会话存储通常用于存储临时数据,例如购物车中的物品或用户在表单中输入的数据。会话存储通常使用 HTML5 的sessionStorage属性来实现。

Web 存储的作用包括:

  • 提高网站的性能:通过将数据存储在本地或会话中,网站可以更快地加载数据,减少了对服务器的请求次数。
  • 改善用户体验:Web 存储可以记住用户的偏好设置和登录状态等信息,使用户在下次访问时能够更快地进入网站。
  • 存储离线数据:Web 存储可以将数据存储在本地,使得用户即使在没有网络连接的情况下也能够访问网站的数据。
  • 减少服务器负载:通过将一些数据存储在本地或会话中,网站可以减少对服务器的请求次数,从而减轻服务器的负载。

在这里插入图片描述

需要注意的是,Web 存储的数据只能被存储数据的网站访问,并且用户可以随时清除存储的数据。因此,网站应该谨慎地使用 Web 存储,并确保遵守相关的隐私政策和法规。

二、 localStoragesessionStorage 的基础知识

解释 localStoragesessionStorage 的定义和区别

localStoragesessionStorage是 HTML5 提供的两种在浏览器中存储数据的方式。

  • localStorage用于将数据存储在本地计算机上,即使关闭浏览器窗口或浏览器会话,数据仍然存在。localStorage的数据可以在同一域名下的不同页面之间共享。

  • sessionStorage也用于在浏览器中存储数据,但与localStorage不同的是,sessionStorage的数据仅在当前会话期间有效。一旦用户关闭浏览器窗口或浏览器会话,sessionStorage中的数据将被删除。

下面是localStoragesessionStorage之间的一些区别:

  • 生命周期:localStorage的数据在浏览器中持续存在,直到用户明确删除或清除浏览器缓存。sessionStorage的数据仅在当前会话期间有效,会话结束后数据将被删除。

  • 作用域:localStorage的数据可以在同一域名下的不同页面之间共享。而sessionStorage的数据仅在当前页面中可用。

  • 存储大小限制:localStoragesessionStorage都有一定的存储大小限制。具体的限制大小可能因浏览器而异,但通常localStorage的限制较大,而sessionStorage的限制较小。

  • 应用场景:localStorage适用于长期存储用户偏好设置、缓存数据等。sessionStorage适用于在会话期间临时存储数据,如购物车中的物品、登录状态等。

在这里插入图片描述

总而言之,选择使用localStorage还是sessionStorage取决于你的数据存储需求。如果你需要长期保存数据并在不同页面之间共享,使用localStorage更为合适。如果你只需要在当前会话期间存储数据,使用sessionStorage即可。

演示如何在浏览器中访问和使用 localStoragesessionStorage

以下是使用 JavaScript 在浏览器中访问和使用 localStoragesessionStorage 的示例:

  1. localStorage

    • 访问:可以通过 window.localStorage 对象来访问 localStorage

    • 存储数据:可以使用 setItem() 方法来存储数据,语法为 localStorage.setItem(key, value),其中 key 是数据的键,value 是要存储的数据。

    • 获取数据:可以使用 getItem() 方法来获取数据,语法为 localStorage.getItem(key),其中 key 是要获取数据的键。

    • 删除数据:可以使用 removeItem() 方法来删除数据,语法为 localStorage.removeItem(key),其中 key 是要删除数据的键。

    • 清空所有数据:可以使用 clear() 方法来清空所有数据,语法为 localStorage.clear()

    示例代码:

    // 存储数据
    localStorage.setItem('myData', 'Hello, World!');// 获取数据
    var data = localStorage.getItem('myData');// 输出:Hello, World!
    console.log(data); // 删除数据
    localStorage.removeItem('myData');// 清空所有数据
    localStorage.clear();
    
  2. sessionStorage

    • 访问:可以通过 window.sessionStorage 对象来访问 sessionStorage

    • 存储数据、获取数据、删除数据和清空所有数据的方法与 localStorage 相同,只是使用的对象不同。

    示例代码:

    // 存储数据
    sessionStorage.setItem('myData', 'Hello, World!');// 获取数据
    var data = sessionStorage.getItem('myData');// 输出:Hello, World!
    console.log(data); // 删除数据
    sessionStorage.removeItem('myData');// 清空所有数据
    sessionStorage.clear();
    

在上述示例中,我们演示了如何使用 localStoragesessionStorage 来存储、获取、删除数据以及清空所有数据。你可以根据需要替换 keyvalue 来存储和获取自定义的数据。

三、 localStorage 的使用场景和示例

探讨 localStorage 在保存用户偏好设置、缓存数据等方面的应用

localStorage在保存用户偏好设置、缓存数据等方面有广泛的应用。下面是一些常见的使用场景:

  1. 用户偏好设置:通过localStorage,可以存储用户的偏好设置,例如语言偏好、主题样式、页面布局等。当用户下次访问该网站时,网站可以自动读取localStorage中的设置,并根据用户的偏好进行个性化展示。

  2. 缓存数据localStorage可以用来缓存一些数据,以减少服务器请求和提高页面加载速度。例如,可以将一些常用的静态资源(如图像、CSS 文件、JavaScript 文件等)存储在localStorage中,当用户再次访问该页面时,直接从localStorage中读取缓存的数据,而无需再次从服务器下载。

  3. 登录状态:可以使用localStorage来存储用户的登录状态信息,以便在用户下次访问时自动登录。例如,将用户的登录凭据存储在localStorage中,当用户打开页面时,检查localStorage中是否存在登录凭据,如果存在,则自动登录用户。

  4. 购物车:在电子商务网站中,可以使用localStorage来存储用户的购物车信息。当用户添加或删除商品时,更新localStorage中的购物车数据。这样,即使用户关闭浏览器或切换设备,购物车中的商品信息仍然可以被保留。

需要注意的是,localStorage的数据是存储在用户的浏览器中,并且受到浏览器的限制。每个浏览器通常都有自己的存储容量限制,并且localStorage的数据在浏览器关闭后仍然可以保留。因此,在使用localStorage时,需要考虑数据的安全性和隐私问题,不要存储敏感数据或大量数据。

总之,localStorage提供了一种在浏览器中存储数据的简便方式,可以用于改善用户体验、提高网站性能以及实现一些基本的客户端功能。

提供一个使用 localStorage 保存网页字体样式的示例

以下是一个使用 localStorage 来保存网页字体样式的简单示例:

// 获取或设置存储的字体样式
function getFontStyle() {return localStorage.getItem('fontStyle') || 'default';
}function setFontStyle(style) {localStorage.setItem('fontStyle', style);
}// 监听字体样式的变化,并更新页面样式
document.addEventListener('change', function (event) {if (event.target.matches('input[type="radio"]')) {setFontStyle(event.target.value);document.documentElement.style.fontFamily = getFontStyle();}
});// 在页面加载时,从 localStorage 中获取字体样式,并应用到页面上
document.addEventListener('DOMContentLoaded', function () {document.documentElement.style.fontFamily = getFontStyle();
});

在这个示例中,我们使用 localStorage 来存储字体样式,键为 fontStyle。通过 getItem() 方法获取存储的字体样式,或者使用 setItem() 方法设置存储的字体样式。

我们还添加了一个 change 事件监听器,当用户在字体样式选择框中选择字体样式时,会触发该事件。在事件处理函数中,我们更新 localStorage 中的字体样式,并将其应用到页面的字体样式上。

最后,我们在页面加载完成时,通过 DOMContentLoaded 事件监听器,将从 localStorage 中获取的字体样式应用到页面上。

你可以将这个示例嵌入到你的网页中,并根据需要进行调整。这样,用户可以在浏览器中选择他们喜欢的字体样式,并在下次访问时保持其选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/278106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS Pro SDK文件选择对话框

文件保存对话框 // 获取默认数据库var gdbPath Project.Current.DefaultGeodatabasePath;//设置文件的保存路径SaveItemDialog saveLayerFileDialog new SaveItemDialog(){Title "Save Layer File",OverwritePrompt true,//获取或设置当同名文件已存在时是否出现…

设计模式——桥接模式(结构型)

引言 桥接模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 问题 抽象? 实现? 听上去挺吓人? 让我们慢慢来, 先考虑一个简单的…

将 Github token 添加至远程仓库

将 Github token 添加至远程仓库后便于每次 push 重复输入的麻烦 首先,将已生成的 token 记录(注:生成后的 token 确认后便无法查看只能重新生成)并找到对应的项目 git 本地文件路径下 其次,将其与项目所关联,按如下格式配置即可 token 格式类似于 ghp_CAxxxxxxxxxxxxxxxxxGx5j…

C++STL中string详解(零基础/小白,字符串)

目录 1. 基本概念: 1.1 本质: 1.2 string和char*区别: 1.3 特点: 2. 构造函数(初始化) 3. 赋值操作 4. 字符串拼接 5 查找 和 替换 6. 字符串比较 7. 字符存取 8. 插入和删除 9. 子串获取 1. 基本概念: 1.…

字节与位在物联网传输协议中的使用

1个字节(byte) 8个位(bit) 如下例子,是一个上报数据类型的表格,总有48位(6个字节) 假如报文给的数据类型数据是: 0x06 时,06十六进制转为二进制,结果是00000110 那么在图下就是 (bit1 和 bit2 都为 1) &#xff…

[极客大挑战 2019]BuyFlag1

打开网站: 右上角有个菜单 (menu) ,先点一下,然后就进入了 pay.php 页面。 其中关键信息如下: ## FlagFlag need your 100000000 money### attentionIf you want to buy the FLAG:You must be a student from CUIT!!!You must…

【离线】牛客小白月赛39 G

登录—专业IT笔试面试备考平台_牛客网 题意 思路 考虑离线Bit做法 这种离线Bit,一般都是去考虑二维数点就能写清楚了 确定好两维:x 轴是1 ~ n, y 轴是 k 的大小 然后去遍历值域,如果值域很大的话需要排序离散化,但…

RT-DETR 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 RT-DETR 进行对象计数 有很多同学留言说想学 RT-DETR 目标计数。那么今天这篇博客,我将教大家如何使用 RT-DETR 进行对象计数。RT-DETR 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行…

如何拍摄超级大像素图片,超级大像素有哪些应用

引言: 在数字摄影领域,超级大像素照片是指通过高像素的相机或拼接多张照片合成的照片。这样的照片具有更高的分辨率,细节更加清晰,绘画质感更强。那么如何拍摄超级大像素照片,超级大像素可以用在哪些领域呢。 一&…

希尔伯特黄变换(hht)

提示:主要对希尔伯特黄变换进行简略的介绍 一、希尔伯特黄变换是什么? 1.1 定义 为了纪念故事中两位老先生(Hilbert和Huang)的突出贡献,人们决定把“经过EMD分解出的IMF分量再经过Hilbert变换,最终得到信…

扫地机器人测试点

简介:在科技发展的浪潮下,扫地机器人已经成为越来越多家庭的“贴心管家”,助力我们迎战尘埃和杂物。但是,面对市面上五花八门的扫地机器人,以下为一般情况下扫地机器人的功能测试要点。 历史攻略: AI语音…

Vue3-19-组件-定义和基本使用

组件的定义 个人理解 :1、组件,就是我们把某个功能模块进行封装,在使用时直接引入进行使用,极大的提高了代码的可复用性。2、在vue 中,一个 [.vue] 文件,就是一个组件。3、组件之间存在【引入】 与 【被引…