为什么 localStorage 的同步读写会阻塞主线程?
为什么 localStorage 的同步读写会阻塞主线程? 本文先给出可直接复述的结论,再用最小代码说明localStorage 同步读写为什么阻塞主线程的工作方式、判断依据、项目边界和常见误区。
离线应用专题面试题第 2 页,显示第 51–100 题,共找到 121 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么 localStorage 的同步读写会阻塞主线程? 本文先给出可直接复述的结论,再用最小代码说明localStorage 同步读写为什么阻塞主线程的工作方式、判断依据、项目边界和常见误区。
如何向浏览器申请永久性存储(persistent storage)? 本文先给出可直接复述的结论,再用最小代码说明StorageManager.persist 申请持久存储的工作方式、判断依据、项目边界和常见误区。
如何检测浏览器当前可用存储空间和已用配额? 本文先给出可直接复述的结论,再用最小代码说明navigator.storage.estimate 查询存储配额的工作方式、判断依据、项目边界和常见误区。
当浏览器存储配额超限时,IndexedDB 会抛出什么错误? 本文先给出可直接复述的结论,再用最小代码说明IndexedDB QuotaExceededError 处理的工作方式、判断依据、项目边界和常见误区。
sessionStorage 的数据生命周期与标签页或刷新有什么关系? 本文先给出可直接复述的结论,再用最小代码说明sessionStorage 生命周期与标签页刷新的工作方式、判断依据、项目边界和常见误区。
Storage Buckets API 能解决哪些存储配额管理问题? 本文先给出可直接复述的结论,再用最小代码说明Storage Buckets API 配额管理的工作方式、判断依据、项目边界和常见误区。
为什么 storage 事件不会在当前页面触发? 本文先给出可直接复述的结论,再用最小代码说明storage 事件为什么不在当前页面触发的工作方式、判断依据、项目边界和常见误区。
浏览器对第三方 iframe 的 localStorage 和 Cookie 如何分区? 本文先给出可直接复述的结论,再用最小代码说明第三方 iframe 存储分区 Cookie localStorage的工作方式、判断依据、项目边界和常见误区。
当 localStorage 被清除时,storage 事件的 key 属性是什么? 本文先给出可直接复述的结论,再用最小代码说明storage 事件 key 为 null 的情况的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 的生命周期包括哪几个阶段?各阶段对应哪些事件? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 生命周期 install activate的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 如何与打开的页面进行双向通信? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 与页面双向通信的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 的 fetch 事件如何拦截并处理页面发出的网络请求? 本文先给出可直接复述的结论,再用最小代码说明Service Worker fetch 拦截 respondWith的工作方式、判断依据、项目边界和常见误区。
当 Service(服务)Worker 的脚本文件更新时,浏览器如何决定是否启用新版本? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 脚本更新机制的工作方式、判断依据、项目边界和常见误区。
讲解浏览器中专用 Worker、共享 Worker、Service Worker 三类线程的职责、生命周期差异,给出选型条件、常见误用边界与判断方法。
在一个 Worker 内部还能再创建新的 Worker 吗?嵌套 Worker 有什么限制? 本文先给出可直接复述的结论,再用最小代码说明嵌套 Worker 创建与限制的工作方式、判断依据、项目边界和常见误区。
普通 Web Worker 和 Service(服务)Worker 在被用户关闭标签页后的生命周期有何不同? 本文先给出可直接复述的结论,再用最小代码说明Worker 与 Service Worker 标签页关闭生命周期的工作方式、判断依据、项目边界和常见误区。
docker buildx build --output 有哪些输出类型,何时导出 OCI tarball 而非推送镜像? 本文先给出可直接复述的结论,再用最小代码说明docker buildx --output oci tar 导出的工作方式、判断依据、项目边界和常见误区。
需要把前端仓库交付给无法访问远程的隔离环境时,git bundle 如何打包仓库并支持增量? 本文先给出可直接复述的结论,再用最小代码说明git bundle 离线交付 增量打包的工作方式、判断依据、项目边界和常见误区。
git clone --filter=blob:none 部分克隆在超大型前端仓库中如何减少体积、代价是什么? 本文先给出可直接复述的结论,再用最小代码说明git partial clone --filter=blob:none 大仓库的工作方式、判断依据、项目边界和常见误区。
为什么需要 Git 这样的分布式版本控制系统,它解决了本地备份和集中式 VCS 的哪些具体问题 本文先给出可直接复述的结论,再用最小代码说明Git 分布式版本控制 优势的工作方式、判断依据、项目边界和常见误区。
HTTP 请求指令 only-if-cached 的效果是什么,缓存未命中时客户端会收到什么状态码? 本文先给出可直接复述的结论,再用最小代码说明only-if-cached 504 离线的工作方式、判断依据、项目边界和常见误区。
Service Worker 的 Cache Storage 与浏览器 HTTP 缓存是两套机制,fetch 时默认走哪个,如何避免双重缓存策略打架? 本文先给出可直接复述的结论,再用最小代码说明Service Worker CacheStorage HTTP 缓存 优先级的工作方式、判断依据、项目边界和常见误区。
为什么在 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 持久存储的工作方式、判断依据、项目边界和常见误区。