前端常见的数据缓存方案及其实现细节_javascript技巧

前端数据缓存机制是提升应用性能、减少网络请求、优化用户体验的关键技术手段。以下是前端常见的数据缓存方案及其实现细节,涵盖浏览器缓存、本地存储、内存缓存等多种策略:

通过 HTTP 协议头控制缓存,适用于静态资源(如 JS、CSS、图片)和接口响应

Cache-Control: max-age=3600 # 资源有效期 1 小时(优先级高)Expires: Wed, 21 Oct 2024 07:28:00 GMT # 过期时间(HTTP/1.0)

# 服务器返回标识ETag: "33a64df551425fcc55e4d42a148795d9"Last-Modified: Wed, 21 Oct 2024 07:28:00 GMT# 浏览器请求时携带标识If-None-Match: "33a64df551425fcc55e4d42a148795d9"If-Modified-Since: Wed, 21 Oct 2024 07:28:00 GMT

适用于存储结构化数据,容量约 5~10MB,分为 localStoragesessionStorage

// 存储数据(注意:只能存字符串)localStorage.setItem('user', JSON.stringify({ name: 'Alice' }));// 读取数据const user = JSON.parse(localStorage.getItem('user'));// 删除数据localStorage.removeItem('user');

适用于存储大量结构化数据(支持索引、事务),容量可达数百 MB。

// 打开数据库const request = indexedDB.open('myDB', 1);request.onupgradeneeded = (event) => { const db = event.target.result; const store = db.createObjectStore('apiCache', { keyPath: 'url' }); store.createIndex('timestamp', 'timestamp', { unique: false });};// 存储数据function saveToIndexedDB(url, data) { const transaction = db.transaction('apiCache', 'readwrite'); const store = transaction.objectStore('apiCache'); store.put({ url, data, timestamp: Date.now() });}// 查询数据async function getFromIndexedDB(url) { return new Promise((resolve) => { const transaction = db.transaction('apiCache', 'readonly'); const store = transaction.objectStore('apiCache'); const request = store.get(url); request.onsuccess = (e) => resolve(e.target.result?.data); });}

适用于单页应用(SPA)中短期数据缓存,随页面刷新失效。

实现离线缓存和网络请求拦截,适合 PWA 应用。

import { useQuery } from 'react-query';function UserProfile() { const { data } = useQuery('userData', () => fetch('/api/user').then(res => res.json()), { staleTime: 5 * 60 * 1000, // 5分钟缓存有效期 cacheTime: 30 * 60 * 1000 // 30分钟保留时间 }); // ...}

import useSWR from 'swr';function Profile() { const { data } = useSWR('/api/user', fetcher, { revalidateOnFocus: false, // 窗口聚焦时不刷新 dedupingInterval: 60000 // 60秒内相同请求去重 }); // ...}

通过合理设计缓存机制,可显著提升前端性能,但在实际应用中需平衡以下关系:✅ 新鲜度 vs 性能存储空间 vs 用户体验开发成本 vs 维护成本

到此这篇关于前端常见的数据缓存方案及其实现细节的文章就介绍到这了,更多相关前端数据缓存机制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/c4a78b20b8930c4afaaa.html
全局中部横幅
百度一下

全球领先的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结果。

人民网

人民网,是世界十大报纸之一《人民日报》建设的以新闻为主的大型网上信息发布平台,也是互联网上最大的中文和多语种新闻网站之一。作为国家重点新闻网站,人民网以新闻报道的权威性、及时性、多样性和评论性为特色,在网民中树立起了“权威媒体、大众网站”的形象。

知乎

知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于2011年1月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制以及结构化和易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类、在诸多领域具有关键影响力的知识分享社区和创作者聚集的原创内容平台,建立起了以社区驱动的内容变现商业模式。

公众号排行榜

该站点未添加描述description...

数美科技

数美科技,基于先进的人工智能技术构建了全场景全流程全维度业务风控产品矩阵与秒级迭代全球SaaSAI风控服务网络,数美科技致力于为全球企业提供专业的在线业务风控服务,为在线业务增长保驾护航。

YHOST分销系统官网

YHOST分销系统全网首发EP分销系统,杜绝服务器安秘钥泄露,集成化管理,通过简单的配置后即可开始你的分销之旅!

彩虹云主机

彩虹云主机提供免备案CDN,免备案空间,全光纤网络,BGP智能多线,直连大陆ChinaNET骨干端口,资源存放在郑州、洛阳、洛杉矶、韩国、香港等多个数据中心,已实现所有主机/云服务器的SSD固态硬盘部署,硬盘读写能力提升5倍,彻底解决高并发问题,可满足高IO需求的数据库等在线业务

11资源网

提供各种虚拟资源,虚拟货源,精品资源,源码下载,热门软件,知识付费课程,网创教程,网盘资源合集分享下载。副业项目教程,副业网创资讯,各类稀缺资源分享下载

中文导航网

九州网址,实用的中文网站导航与百科问答知识分享。为您提供好用的网站导航、实用的网站收录、详细的网站介绍及网站点评参考,九州网址关怀您的网络生活,让您上网更方便!

站长导航网

站长导航网系统是一个专业收录优质网站的网址导航平台,提供简洁高效的网络入口。免费提交收录,发现实用工具、设计资源、程序员必备站,打造您的专属上网主页