为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中?
为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中? 本文先给出可直接复述的结论,再用最小代码说明activate 事件 清理旧缓存 cacheName的工作方式、判断依据、项目边界和常见误区。
PWA · 离线与渐进增强面试题第 1 页,显示第 1–43 题,共找到 43 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么在 activate 事件中清理旧版本缓存而不是在 install 事件中? 本文先给出可直接复述的结论,再用最小代码说明activate 事件 清理旧缓存 cacheName的工作方式、判断依据、项目边界和常见误区。
如何检测 PWA 已被安装以及当前是否运行在独立(standalone)窗口模式? 本文先给出可直接复述的结论,再用最小代码说明appinstalled display-mode standalone 检测的工作方式、判断依据、项目边界和常见误区。
Background Sync 如何在用户恢复网络后重放离线期间提交的表单请求? 本文先给出可直接复述的结论,再用最小代码说明Background Sync 离线请求重放的工作方式、判断依据、项目边界和常见误区。
beforeinstallprompt 事件如何用于实现自定义安装按钮,为什么默认安装横幅有时不出现? 本文先给出可直接复述的结论,再用最小代码说明beforeinstallprompt 自定义安装按钮的工作方式、判断依据、项目边界和常见误区。
Cache Storage API 和浏览器 HTTP 缓存有什么区别,为什么 PWA 离线要显式使用 Cache API? 本文先给出可直接复述的结论,再用最小代码说明Cache Storage API HTTP缓存 区别的工作方式、判断依据、项目边界和常见误区。
带内容哈希的静态资源与 HTML 文档应分别采用什么缓存与失效策略? 本文先给出可直接复述的结论,再用最小代码说明内容哈希 缓存失效 HTML 静态资源的工作方式、判断依据、项目边界和常见误区。
Cache First 缓存策略适用于 PWA 中哪些资源,它最大的风险是什么? 本文先给出可直接复述的结论,再用最小代码说明Cache First 缓存策略 适用场景 风险的工作方式、判断依据、项目边界和常见误区。
Cache Only 和 Network Only 两种极端策略各自适合什么资源? 本文先给出可直接复述的结论,再用最小代码说明Cache Only Network Only 适用资源的工作方式、判断依据、项目边界和常见误区。
为什么把 fetch 的 Response 存入缓存前必须 response.clone()? 本文先给出可直接复述的结论,再用最小代码说明Response clone 缓存 只读一次的工作方式、判断依据、项目边界和常见误区。
PWA 是否应该把大体积音视频资源纳入离线缓存,取舍标准和替代方案是什么? 本文先给出可直接复述的结论,再用最小代码说明离线缓存 大文件 音视频 取舍的工作方式、判断依据、项目边界和常见误区。
Clients.claim() 在什么时候需要调用,不调用会导致什么现象? 本文先给出可直接复述的结论,再用最小代码说明Clients.claim 立即控制页面的工作方式、判断依据、项目边界和常见误区。
监听 controllerchange 自动刷新页面为什么可能丢用户数据,更稳妥的做法是什么? 本文先给出可直接复述的结论,再用最小代码说明controllerchange 自动刷新 风险的工作方式、判断依据、项目边界和常见误区。
如何用 Chrome DevTools 的 Application 面板诊断 Service Worker 注册失败和缓存未命中的问题? 本文先给出可直接复述的结论,再用最小代码说明DevTools Application Service Worker 调试的工作方式、判断依据、项目边界和常见误区。
离线时图片加载失败如何用占位图回退,fetch 事件中如何实现按请求类型的回退? 本文先给出可直接复述的结论,再用最小代码说明离线图片占位 fallback fetch respondWith的工作方式、判断依据、项目边界和常见误区。
如何在 fetch 事件中识别页面导航请求(request.mode === 'navigate')并与静态资源分流处理? 本文先给出可直接复述的结论,再用最小代码说明fetch 事件 request.mode navigate 分流的工作方式、判断依据、项目边界和常见误区。
为什么 PWA 无法在用户首次访问时就提供离线能力,这对「离线可用」的宣传口径意味着什么? 本文先给出可直接复述的结论,再用最小代码说明PWA 首次访问 离线 限制的工作方式、判断依据、项目边界和常见误区。
为什么 Service Worker 只能在 HTTPS 下注册,localhost 为什么例外? 本文先给出可直接复述的结论,再用最小代码说明Service Worker HTTPS 安全上下文 localhost的工作方式、判断依据、项目边界和常见误区。
Service Worker 的 install 事件中预缓存失败会发生什么,如何保证安装原子性? 本文先给出可直接复述的结论,再用最小代码说明install 事件 预缓存失败 event.waitUntil的工作方式、判断依据、项目边界和常见误区。
iOS Safari 上 PWA 的离线能力有哪些实际限制,面试中应如何说明兼容方案? 本文先给出可直接复述的结论,再用最小代码说明iOS Safari PWA 离线 限制的工作方式、判断依据、项目边界和常见误区。
Lighthouse 的 PWA 审计检查哪些离线相关项,常见不通过的原因有哪些? 本文先给出可直接复述的结论,再用最小代码说明Lighthouse PWA 审计 离线 检查项的工作方式、判断依据、项目边界和常见误区。
同一站点不同 scope 注册多个 Service Worker 会怎样,如何避免互相覆盖缓存? 本文先给出可直接复述的结论,再用最小代码说明多个 Service Worker scope 冲突的工作方式、判断依据、项目边界和常见误区。
Navigation Preload 如何降低 Network First 页面的启动延迟,启用后要注意什么? 本文先给出可直接复述的结论,再用最小代码说明Navigation Preload 导航预加载的工作方式、判断依据、项目边界和常见误区。
Network First 策略在什么业务场景下优于 Cache First,网络超时时应如何兜底? 本文先给出可直接复述的结论,再用最小代码说明Network First 策略 超时回退的工作方式、判断依据、项目边界和常见误区。
离线状态下 API 数据请求应该如何设计回退,返回缓存数据和返回错误提示如何取舍? 本文先给出可直接复述的结论,再用最小代码说明离线 API 请求 回退 缓存数据的工作方式、判断依据、项目边界和常见误区。
PWA 离线时如何为导航请求提供回退页面(offline fallback page),为什么需要单独处理导航请求? 本文先给出可直接复述的结论,再用最小代码说明离线回退页面 navigation fallback的工作方式、判断依据、项目边界和常见误区。
navigator.onLine 和 online/offline 事件为什么不足以判断真实连通性,离线功能应如何兜底? 本文先给出可直接复述的结论,再用最小代码说明navigator.onLine online事件 可靠性的工作方式、判断依据、项目边界和常见误区。
跨域 no-cors 请求缓存得到的 opaque response 有什么问题,如何影响存储配额统计? 本文先给出可直接复述的结论,再用最小代码说明opaque response 跨域缓存 配额的工作方式、判断依据、项目边界和常见误区。
navigator.storage.persist() 的作用是什么,哪些浏览器行为会因持久存储授权而改变? 本文先给出可直接复述的结论,再用最小代码说明persistent storage persist 持久存储的工作方式、判断依据、项目边界和常见误区。
预缓存(precaching)和运行时缓存(runtime caching)的区别是什么,各自适合缓存什么? 本文先给出可直接复述的结论,再用最小代码说明precaching runtime caching 区别的工作方式、判断依据、项目边界和常见误区。
渐进增强视角下,浏览器不支持 Service Worker 时站点应如何保证功能可用? 本文先给出可直接复述的结论,再用最小代码说明渐进增强 Service Worker 不支持 降级的工作方式、判断依据、项目边界和常见误区。
navigator.serviceWorker.register 的 scope 参数和 Service-Worker-Allowed 响应头各自起什么作用? 本文先给出可直接复述的结论,再用最小代码说明register scope Service-Worker-Allowed的工作方式、判断依据、项目边界和常见误区。
Service Worker 为什么不能直接访问 DOM,离线场景下如何与页面通信? 本文先给出可直接复述的结论,再用最小代码说明Service Worker DOM 通信 postMessage的工作方式、判断依据、项目边界和常见误区。
为什么建议对 Service Worker 脚本本身设置很短的 HTTP 缓存或使用 no-cache? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 脚本 HTTP缓存 max-age的工作方式、判断依据、项目边界和常见误区。
ServiceWorkerGlobalScope.skipWaiting() 解决了什么问题,直接使用有什么风险? 本文先给出可直接复述的结论,再用最小代码说明skipWaiting 作用 风险的工作方式、判断依据、项目边界和常见误区。
Stale-While-Revalidate 策略如何实现,为什么它适合列表页这类场景? 本文先给出可直接复述的结论,再用最小代码说明Stale While Revalidate 实现原理 适用场景的工作方式、判断依据、项目边界和常见误区。
PWA 如何用 StorageManager.estimate() 监控缓存占用,浏览器在什么情况下会主动清除站点存储? 本文先给出可直接复述的结论,再用最小代码说明StorageManager estimate 配额 存储驱逐的工作方式、判断依据、项目边界和常见误区。
什么时候应该注销 Service Worker,unregister() 之后缓存会一起清除吗? 本文先给出可直接复述的结论,再用最小代码说明Service Worker unregister 注销 清缓存的工作方式、判断依据、项目边界和常见误区。
浏览器如何检测 Service Worker 脚本有更新,byte 比较和 24 小时检查规则是什么? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 更新检测 24小时 update的工作方式、判断依据、项目边界和常见误区。
部署了新代码但用户仍看到旧页面,从 Service Worker 角度列出最可能的原因清单? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 不更新 排查的工作方式、判断依据、项目边界和常见误区。
PWA 缓存如何设计版本化命名,保证发布新版本时旧缓存被安全替换? 本文先给出可直接复述的结论,再用最小代码说明缓存版本命名 版本迁移的工作方式、判断依据、项目边界和常见误区。
新版 Service Worker 进入 waiting 状态后,如何设计「发现新版本,点击刷新」的更新提示? 本文先给出可直接复述的结论,再用最小代码说明Service Worker waiting 更新提示 postMessage的工作方式、判断依据、项目边界和常见误区。
Web App Manifest 中哪些字段影响 PWA 的可安装性,display 各取值有什么区别? 本文先给出可直接复述的结论,再用最小代码说明Web App Manifest 可安装 display的工作方式、判断依据、项目边界和常见误区。
Service Worker 的 scope 为什么决定它能控制哪些页面,如何影响 PWA 的目录结构部署? 本文先给出可直接复述的结论,再用最小代码说明Service Worker scope 作用域 控制页面的工作方式、判断依据、项目边界和常见误区。