为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中?
围绕“为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明版本化缓存名与清理时机的原因。
PWA · 缓存面试题第 1 页,显示第 1–24 题,共找到 24 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明版本化缓存名与清理时机的原因。
围绕“Cache Storage API 和浏览器 HTTP 缓存有什么区别,为什么 PWA 离线要显式使用 Cache ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要对比程序化控制与浏览器启发式缓存的可控性。
围绕“带内容哈希的静态资源与 HTML 文档应分别采用什么缓存与失效策略”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分 immutable 长缓存与 HTML 短时效的处理。
围绕“Cache First 缓存策略适用于 PWA 中哪些资源,它最大的风险是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断适合缓存优先的资源类型及内容过期风险,不对比其他策略细节。
围绕“Cache Only 和 Network Only 两种极端策略各自适合什么资源”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分两类极端策略的资源归属与失败表现。
围绕“为什么把 fetch 的 Response 存入缓存前必须 response.clone()”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释响应流只能消费一次及 clone 的正确位置,不讲缓存策略。
围绕“PWA 是否应该把大体积音视频资源纳入离线缓存,取舍标准和替代方案是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖权衡配额占用与按需缓存/Range 请求方案,不讲通用缓存策略。
围绕“如何用 Chrome DevTools 的 Application 面板诊断 Service Worker 注册失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖给出注册状态、Update on reload、Cache Storage 的检查路径。
围绕“离线时图片加载失败如何用临时标记图回退,fetch 事件中如何实现按请求类型的回退”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖描述对图片请求返回预缓存临时标记资源的实现。
围绕“如何在 fetch 事件中识别页面导航请求(request.mode === 'navigate')并与静态资源分流”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按请求模式分流到不同缓存逻辑的判断方式。
围绕“Service Worker 的 install 事件中预缓存失败会发生什么,如何保证安装原子性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 waitUntil 失败导致安装中止的机制与降级方案。
围绕“同一站点不同 scope 注册多个 Service Worker 会怎样,如何避免互相覆盖缓存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 scope 匹配优先级与缓存命名隔离的必要性,不讲生命周期。
围绕“Network First 策略在什么业务场景下优于 Cache First,网络超时时应如何兜底”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明网络优先的时效性收益与超时回退设计。
围绕“离线状态下 API 数据请求应该如何设计回退,返回缓存数据和返回错误提示如何取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕权衡陈旧数据展示与明确离线提示的产品决策。
围绕“navigator.onLine 和 online/offline 事件为什么不足以判断真实连通性,离线功能应如何兜”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖指出该 API 只反映网络接口状态及以请求失败为准的兜底设计,不讲 SW 缓存。
围绕“跨域 no-cors 请求缓存得到的 opaque response 有什么问题,如何影响存储配额统计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明不透明响应无法校验状态与配额放大的风险,不讲 CORS 细节。
围绕“预缓存(precaching)和运行时缓存(runtime caching)的区别是什么,各自适合缓存什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖按安装时机划分两类缓存的资源归属。
围绕“渐进增强视角下,浏览器不支持 Service Worker 时站点应如何保证功能可用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明特性检测与核心功能不依赖 SW 的分层设计,不讲具体缓存实现。
围绕“为什么建议对 Service Worker 脚本本身设置很短的 HTTP 缓存或使用 no-cache”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释脚本被长缓存导致更新延迟的机制,不讲 SW 内部资源缓存。
围绕“Stale-While-Revalidate 策略如何实现,为什么它适合列表页这类场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明先返缓存再后台更新的流程与一致性代价。
围绕“PWA 如何用 StorageManager.estimate() 监控缓存占用,浏览器在什么情况下会主动清除站点存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明配额查询与 LRU 驱逐策略及 persistent 申请,不讲缓存清理代码。
围绕“什么时候应该注销 Service Worker,unregister() 之后缓存会一起清除吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明注销的适用场景及缓存需手动清除的事实,不讲注册流程。
围绕“部署了新代码但用户仍看到旧页面,从 Service Worker 角度列出最可能的原因清单”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕系统性列举缓存名未变、waiting 未激活、HTTP 缓存脚本等原因,不深入单点。
围绕“PWA 缓存如何设计版本化命名,保证发布新版本时旧缓存被安全替换”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖给出命名约定与 activate 清理配合的发布流程,不讲具体策略选择。