HTML5首屏数据缓存应分层使用:优先localStorage存静态数据并设过期时间;sessionStorage管会话临时数据;Cache API+Service Worker实现请求级精细缓存;注意容量限制、敏感信息规避及手动清理机制。

在HTML5中,可以通过本地存储机制缓存首屏所需的数据,避免每次打开页面都向服务器重复请求,从而显著降低首屏加载延迟和服务器压力。
优先使用 localStorage 缓存静态或低频更新的首屏数据
对于用户信息、配置项、导航菜单、地区列表等变化不频繁的数据,可在首次请求成功后存入 localStorage,后续加载时先读取本地缓存并渲染,同时异步校验更新。注意设置合理过期时间(如通过时间戳字段判断),避免数据陈旧。
- 保存时:将响应数据与当前时间一并序列化存储,例如
localStorage.setItem('menuData', JSON.stringify({ data: res, timestamp: Date.now() })) - 读取时:先检查是否存在且未过期(如 24 小时内),再解析使用;过期则触发后台更新,不影响当前展示
- 需监听网络状态,在离线时自动降级为纯本地数据渲染
用 sessionStorage 管理单会话内的临时首屏上下文
针对登录态、搜索关键词、筛选条件等仅在当前会话有效的首屏依赖数据,sessionStorage 更合适——它随标签页关闭自动清理,避免跨会话污染,也无需手动管理生命周期。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 例如用户从搜索页跳转到详情页,可将搜索参数存入 sessionStorage,返回时快速恢复首屏状态
- 配合页面可见性 API(
document.visibilityState)在切回前台时按需刷新关键数据,兼顾体验与新鲜度
结合 Cache API 或 Service Worker 实现更精细的请求级缓存
当首屏依赖多个接口(如 banner、推荐位、用户卡片),单纯靠 localStorage 管理 JSON 数据较难覆盖请求头、状态码、重定向等细节。此时可利用 Cache API 配合 Service Worker,对特定 GET 请求进行拦截与缓存。
- 在 install 阶段预缓存核心资源(如 /api/home/banner),fetch 事件中优先匹配 cache,命中则直接返回 Response 对象
- 支持 versioned cache(如 'home-v1'),便于版本迭代时自动清理旧缓存
- 注意设置合理的缓存策略:首屏接口建议用 stale-while-revalidate,保证即时展示+后台更新
避免滥用导致数据不一致或存储溢出
本地存储容量有限(通常 5–10MB),且所有同源脚本均可访问。若不加约束,容易引发冲突、泄露或崩溃。
- 对缓存数据做体积预估,大字段(如富文本、base64 图片)应压缩或转为 CDN 链接再存储
- 敏感信息(如 token、手机号)不要存在 localStorage,改用 httpOnly cookie 或内存变量 + 定时清除
- 提供手动清缓存入口(如设置页中的“刷新首页数据”按钮),方便用户和测试人员干预
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










