别再忽略了!前端缓存机制大揭秘:LocalStorage vs SessionStorage vs IndexedDB

算法调参侠
• 阅读 182

在前端的世界里,性能优化永远是一个老生常谈却又充满活力的话题。而在众多优化手段中,缓存机制无疑是提升性能、增强用户体验的利器。但你知道吗?前端缓存不止一种,而是有着各自的特点和适用场景。今天,我们就来聊聊LocalStorage、SessionStorage和IndexedDB这三大前端缓存机制,看看它们各自的魔力和局限。

LocalStorage:老司机也有忘记关火的时候

LocalStorage,顾名思义,是用来本地存储数据的一种方式。它的特点是非常简单易用,数据没有过期时间,除非你主动去清除,否则数据会一直保存在本地。

// 设置LocalStorage
localStorage.setItem('name', '前端小白');
// 获取LocalStorage
console.log(localStorage.getItem('name')); // 输出:前端小白
// 移除LocalStorage
localStorage.removeItem('name');

但LocalStorage也有它的短板。首先,它存储的数据量比较有限,一般为5MB左右。其次,LocalStorage是同步操作,如果操作数据量较大,可能会阻塞页面的加载。所以,LocalStorage适合存储一些小而美的数据,比如用户的偏好设置。

SessionStorage:会话结束,记忆也随之消失

SessionStorage和LocalStorage有着类似的API,但它是基于会话的存储方式。也就是说,当用户关闭浏览器窗口后,存储在SessionStorage里的数据就会被清除。

// 设置SessionStorage
sessionStorage.setItem('sessionName', '临时访客');
// 获取SessionStorage
console.log(sessionStorage.getItem('sessionName')); // 输出:临时访客

SessionStorage的使用场景主要是临时数据的存储,比如表单填写的过程中,用户可能不希望因为意外关闭页面就丢失所有数据。此时,SessionStorage就能发挥它的作用。

IndexedDB:大数据量的解决方案

如果说LocalStorage是小巷里的便利店,SessionStorage是临时搭建的帐篷,那么IndexedDB就是一座大型仓库。IndexedDB是运行在浏览器上的非关系型数据库,它能够存储大量数据,且不受5MB的限制。

// 打开一个IndexedDB数据库
var request = indexedDB.open('myDatabase', 1);

request.onsuccess = function(event) {
  console.log('数据库打开成功');
};

request.onerror = function(event) {
  console.log('数据库打开失败');
};

IndexedDB的操作是基于事件的,这意味着它是异步的,不会阻塞页面的加载。但同时,这也使得IndexedDB的使用门槛较高,需要有一定的JavaScript基础。它适合存储大型的数据集,比如离线应用的数据存储。

小结

在前端的世界里,每一种缓存机制都有它的舞台。LocalStorage简单实用,适合存储小数据;SessionStorage是会话级别的存储,适合临时数据;而IndexedDB则是大数据量存储的解决方案,尽管使用门槛较高,但它的强大功能足以弥补这一点。作为前端开发者,了解并合理利用这些缓存机制,可以让你的应用更加高效、用户体验更加流畅。别再忽略了,这些前端缓存机制的大揭秘,它们或许正是你所需要的那把钥匙。

算法面试宝典小程序

算法面试宝典小程序提供了字节等大厂面试题库,涵盖7种编程语言的Top5答案,配有详细题解报告和视频讲解。无论您是准备面试还是想提升编程能力,都能轻松掌握各种算法题型,从容面对挑战!

别再忽略了!前端缓存机制大揭秘:LocalStorage vs SessionStorage vs IndexedDB

欢迎加入wx前端技术交流群,二维码长期有效

在这里,我们分享技术经验、职位机会、面试总结,甚至人生感悟。无论您是前端开发新手还是资深工程师,这里都有丰富的资源和热情的交流氛围等待着您。加入我们,与同行们一起探讨前端技术发展趋势,共同成长,共享精彩!

别再忽略了!前端缓存机制大揭秘:LocalStorage vs SessionStorage vs IndexedDB

点赞
收藏
评论区
推荐文章
徐小夕 徐小夕
4年前
浏览器缓存库设计总结(localStorage/indexedDB)
前言浏览器缓存设计一直是web性能优化中非常重要的一个环节,也是SPA应用盛行的今天不得不考虑的问题.作为一名优秀的前端工程师,为了让我们的应用更流畅,用户体验更好,我们有必要做好浏览器缓存策略.每个Web应用体验都必须快速,对于渐进式Web应用更是如此。快速是指在屏幕上获取有意义内容所需的时间,要在不到5秒的时间内提供交互式体验。并且,它必
3A网络 3A网络
3年前
缓存三大问题及解决方案
1.缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。2.缓存问题虽然使用缓存给系统带来了一定的质的提升,但同时也带来了一些需要注意的问题。2.1缓存穿透缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会
浅谈 HTTP 缓存与 CDN 缓存的那点事
HTTP缓存与CDN缓存一直是提升web性能的两大利器,合理的缓存配置可以降低带宽成本、减轻服务器压力、提升用户的体验。而不合理的缓存配置会导致资源界面无法及时更新,从而引发一系列的衍生问题。本文将分别将从HTTP缓存与cdn缓存的规则、流程、配置
Wesley13 Wesley13
4年前
layim的websocket消息撤回功能实现
我的大概思路就是,前端根据选取的内容获得他的cid,我的cid是js生成的uuid,然后:1、通过websocket广播给对应的人去删除localstorage里的缓存,2、ajax异步请求删除数据库里的数据记录3、如果对方此时也打开了聊天面板就要用jquery找到那条消息然后remove。由于目前发现layim3.6版本并没有给自己
菜园前端 菜园前端
2年前
考考你浏览器缓存有哪些,区别是什么?
原文链接:浏览器缓存主要包含cookie、在HTML5新标准中新增了本地存储localStorage和会话存储sessionStorage。cookie什么是cookie?cookie是一些缓存数据,主要存储在你的电脑中。当你发起网络请求时也会携带当前域名
东方客主 东方客主
4年前
一文读懂http缓存(超详细)
前端缓存前端缓存可分为两大类:http缓存和浏览器缓存。我们今天重点讲的是http缓存,所以关于浏览器缓存大家自行去查阅。下面这张图是前端缓存的一个大致知识点:(https://imghelloworld.osscnbeijing.aliyuncs.com/3e161cfcbe560b9608064ec91077346
Souleigh ✨ Souleigh ✨
4年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
东方客主 东方客主
4年前
彻底弄懂HTTP缓存机制及原理
Http缓存机制作为web性能优化的重要手段,对于从事Web开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP
京东云开发者 京东云开发者
11个月前
真实案例解析缓存大热key的致命陷阱
作者:京东零售曹志飞引言在现代软件架构中,缓存是提高系统性能和响应速度的重要手段。然而,如果不正确地使用缓存,可能会导致严重的线上事故,尤其是缓存的大热key问题更是老生常谈。本文将探讨一个常见但容易被忽视的问题:缓存大热key和缓存击穿问题。我们将从一个
京东云开发者 京东云开发者
1个月前
真实案例解析缓存大热key的致命陷阱
引言在现代软件架构中,缓存是提高系统性能和响应速度的重要手段。然而,如果不正确地使用缓存,可能会导致严重的线上事故,尤其是缓存的大热key问题更是老生常谈。本文将探讨一个常见但容易被忽视的问题:缓存大热key和缓存击穿问题。我们将从一个真实案例入手,分析其
算法调参侠
算法调参侠
Lv1
雁啼红叶天,人醉黄花地,芭蕉雨声秋梦里。
文章
4
粉丝
0
获赞
0