Service Worker 的 install 事件中预缓存失败会发生什么,如何保证安装原子性?
Service Worker 的 install 事件中预缓存失败会发生什么,如何保证安装原子性? 本文先给出可直接复述的结论,再用最小代码说明install 事件 预缓存失败 event.waitUntil的工作方式、判断依据、项目边界和常见误区。
缓存专题面试题第 5 页,显示第 201–250 题,共找到 355 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
Service Worker 的 install 事件中预缓存失败会发生什么,如何保证安装原子性? 本文先给出可直接复述的结论,再用最小代码说明install 事件 预缓存失败 event.waitUntil的工作方式、判断依据、项目边界和常见误区。
同一站点不同 scope 注册多个 Service Worker 会怎样,如何避免互相覆盖缓存? 本文先给出可直接复述的结论,再用最小代码说明多个 Service Worker scope 冲突的工作方式、判断依据、项目边界和常见误区。
Network First 策略在什么业务场景下优于 Cache First,网络超时时应如何兜底? 本文先给出可直接复述的结论,再用最小代码说明Network First 策略 超时回退的工作方式、判断依据、项目边界和常见误区。
离线状态下 API 数据请求应该如何设计回退,返回缓存数据和返回错误提示如何取舍? 本文先给出可直接复述的结论,再用最小代码说明离线 API 请求 回退 缓存数据的工作方式、判断依据、项目边界和常见误区。
navigator.onLine 和 online/offline 事件为什么不足以判断真实连通性,离线功能应如何兜底? 本文先给出可直接复述的结论,再用最小代码说明navigator.onLine online事件 可靠性的工作方式、判断依据、项目边界和常见误区。
跨域 no-cors 请求缓存得到的 opaque response 有什么问题,如何影响存储配额统计? 本文先给出可直接复述的结论,再用最小代码说明opaque response 跨域缓存 配额的工作方式、判断依据、项目边界和常见误区。
预缓存(precaching)和运行时缓存(runtime caching)的区别是什么,各自适合缓存什么? 本文先给出可直接复述的结论,再用最小代码说明precaching runtime caching 区别的工作方式、判断依据、项目边界和常见误区。
渐进增强视角下,浏览器不支持 Service Worker 时站点应如何保证功能可用? 本文先给出可直接复述的结论,再用最小代码说明渐进增强 Service Worker 不支持 降级的工作方式、判断依据、项目边界和常见误区。
为什么建议对 Service Worker 脚本本身设置很短的 HTTP 缓存或使用 no-cache? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 脚本 HTTP缓存 max-age的工作方式、判断依据、项目边界和常见误区。
Stale-While-Revalidate 策略如何实现,为什么它适合列表页这类场景? 本文先给出可直接复述的结论,再用最小代码说明Stale While Revalidate 实现原理 适用场景的工作方式、判断依据、项目边界和常见误区。
PWA 如何用 StorageManager.estimate() 监控缓存占用,浏览器在什么情况下会主动清除站点存储? 本文先给出可直接复述的结论,再用最小代码说明StorageManager estimate 配额 存储驱逐的工作方式、判断依据、项目边界和常见误区。
什么时候应该注销 Service Worker,unregister() 之后缓存会一起清除吗? 本文先给出可直接复述的结论,再用最小代码说明Service Worker unregister 注销 清缓存的工作方式、判断依据、项目边界和常见误区。
部署了新代码但用户仍看到旧页面,从 Service Worker 角度列出最可能的原因清单? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 不更新 排查的工作方式、判断依据、项目边界和常见误区。
PWA 缓存如何设计版本化命名,保证发布新版本时旧缓存被安全替换? 本文先给出可直接复述的结论,再用最小代码说明缓存版本命名 版本迁移的工作方式、判断依据、项目边界和常见误区。
文档删除后,答案缓存、查询日志、微调数据集中残留的该文档内容如何处理? 本文先给出可直接复述的结论,再用最小代码说明删除残留 缓存 日志 派生数据清理的工作方式、判断依据、项目边界和常见误区。
知识库增量更新时,如何用最少成本判断一个源文档自上次同步后是否真的变了? 本文先给出可直接复述的结论,再用最小代码说明增量更新 变更检测 内容哈希 ETag的工作方式、判断依据、项目边界和常见误区。
员工离职或调岗后,其在知识库中可见文档的权限变更多快必须生效,技术上如何保证? 本文先给出可直接复述的结论,再用最小代码说明权限变更 生效延迟 离职 访问回收的工作方式、判断依据、项目边界和常见误区。
React 官方为什么把「在 useEffect 里获取服务器数据并存入 state」列为需要框架或路由层介入的场景? 本文先给出可直接复述的结论,再用最小代码说明React useEffect 获取数据 缺陷 官方建议的工作方式、判断依据、项目边界和常见误区。
React 中切换筛选条件快速触发多次 effect 请求时,旧响应后到导致界面显示过期数据,官方推荐的解法是什么? 本文先给出可直接复述的结论,再用最小代码说明React effect 请求竞态 cleanup ignore的工作方式、判断依据、项目边界和常见误区。
为什么说把接口返回的数据直接塞进 React Context 并不等于拥有了服务器数据缓存? 本文先给出可直接复述的结论,再用最小代码说明React Context 服务器数据 缓存 失效的工作方式、判断依据、项目边界和常见误区。
React 面试中如何区分「服务器状态」与「客户端状态」,这一分类为什么影响状态管理选型? 本文先给出可直接复述的结论,再用最小代码说明React 服务器状态 客户端状态 区别 选型的工作方式、判断依据、项目边界和常见误区。
为什么 React 的 useSyncExternalStore 要求 getSnapshot 多次调用必须返回缓存的同一个引用? 本文先给出可直接复述的结论,再用最小代码说明useSyncExternalStore getSnapshot 缓存 无限循环的工作方式、判断依据、项目边界和常见误区。
解释内联对象怎样造成 Context value 身份变化,用完整 JSX 示例区分无关计数更新与真实主题更新,并说明 useMemo 依赖、函数缓存和 React Compiler 的适用边界。
useEffect 依赖对象或函数时,为什么可能每次渲染都重跑? 本文先给出可直接复述的结论,再用最小代码说明React useEffect 对象函数依赖反复执行的工作方式、判断依据、项目边界和常见误区。
区分渲染阶段的可变引用读写与可预测初始化,用点击缓存示例说明事件读写、state 展示和跨渲染容器,并解释资源创建的限制。
React 的 useMemo 能解决哪两类问题,为什么不能把它当作结果一定会被缓存的语义保证? 本文先给出可直接复述的结论,再用最小代码说明React useMemo 用途 缓存 语义保证的工作方式、判断依据、项目边界和常见误区。
为什么 useSyncExternalStore 的 getSnapshot 必须返回缓存的值,而不能每次新建一个对象? 本文先给出可直接复述的结论,再用最小代码说明React useSyncExternalStore getSnapshot 缓存 无限循环的工作方式、判断依据、项目边界和常见误区。
useCallback 解决了什么问题,它的返回值在渲染之间如何保持? 本文先给出可直接复述的结论,再用最小代码说明useCallback 函数引用 缓存的工作方式、判断依据、项目边界和常见误区。
useCallback 的依赖数组写错为什么会产生读取到旧 state 的过期回调? 本文先给出可直接复述的结论,再用最小代码说明useCallback 过期闭包 依赖的工作方式、判断依据、项目边界和常见误区。
React 实验性 API useEffectEvent 相比 useCallback 解决稳定回调问题有什么不同思路? 本文先给出可直接复述的结论,再用最小代码说明useEffectEvent useCallback 稳定回调 区别的工作方式、判断依据、项目边界和常见误区。
useMemo 依赖数组漏写或多写会有什么症状,如何保证依赖正确? 本文先给出可直接复述的结论,再用最小代码说明useMemo 依赖数组 漏写 exhaustive-deps的工作方式、判断依据、项目边界和常见误区。
解释 useMemo 在开发编辑、初次挂载挂起等情况下可能丢弃缓存,用房间连接示例说明如何把资源创建与清理放在 Effect,并区分缓存、state、ref 和重新挂载后的生命周期。
用按标签筛选条目的示例解释 useMemo 何时计算、如何按 Object.is 比较依赖,说明同引用突变、新数组重算、A 到 B 再到 A,以及纯计算与开发严格模式的边界。
通过报价与确认按钮解释 useMemo 缓存计算结果、useCallback 缓存函数引用的区别,展示完整依赖和旧闭包边界,并说明函数创建、函数调用、请求去重与异步缓存并不是同一件事。
React Router v7 中,如何实现 loader 的数据缓存以减少重复请求? 本文先给出可直接复述的结论,再用最小代码说明loader 缓存策略 数据缓存 重复请求的工作方式、判断依据、项目边界和常见误区。
React 的 cache() 函数在服务端组件渲染中起什么作用,为什么组件树里多处 fetch 同一数据不会重复请求? 本文先给出可直接复述的结论,再用最小代码说明React cache 函数 服务端 请求去重的工作方式、判断依据、项目边界和常见误区。
React SSR 有哪些代价,什么场景值得使用? 本文先给出可直接复述的结论,再用最小代码说明React SSR 优缺点 适用场景的工作方式、判断依据、项目边界和常见误区。
Redis 的 APPEND 和 GETRANGE 能实现什么字符串操作,有什么实际用途? 本文先给出可直接复述的结论,再用最小代码说明Redis APPEND GETRANGE 字符串追加截取的工作方式、判断依据、项目边界和常见误区。
给 Redis Key 设了过期时间,为什么到期后立刻 GET 偶尔还能拿到或内存没立刻降? 本文先给出可直接复述的结论,再用最小代码说明Redis 过期不立即删除 延迟的工作方式、判断依据、项目边界和常见误区。
Redis 对已设过期时间的 Key 再次 SET 或 EXPIRE,过期时间会怎么处理? 本文先给出可直接复述的结论,再用最小代码说明Redis SET 覆盖 清除 TTL EXPIRE 刷新的工作方式、判断依据、项目边界和常见误区。
Redis 的 EXPIRE 和 EXPIREAT 分别适合什么过期语义场景? 本文先给出可直接复述的结论,再用最小代码说明Redis EXPIRE EXPIREAT 相对绝对过期的工作方式、判断依据、项目边界和常见误区。
Redis 的 GETSET 命令适合什么场景,和先 GET 再 SET 有什么区别? 本文先给出可直接复述的结论,再用最小代码说明Redis GETSET 原子读旧写新的工作方式、判断依据、项目边界和常见误区。
Redis 哈希能只给某个字段设过期时间吗,需要什么版本或替代方案? 本文先给出可直接复述的结论,再用最小代码说明Redis Hash 字段级过期 7.4的工作方式、判断依据、项目边界和常见误区。
Redis 哈希底层什么情况下用 listpack,什么时候转成 hashtable? 本文先给出可直接复述的结论,再用最小代码说明Redis Hash listpack hashtable 编码转换的工作方式、判断依据、项目边界和常见误区。
Redis 哈希字段数到几十万后,HGETALL 和单字段操作的开销有什么变化? 本文先给出可直接复述的结论,再用最小代码说明Redis Hash 大字段数 HGETALL 阻塞的工作方式、判断依据、项目边界和常见误区。
大量小对象用 Redis 哈希聚合存比每个对象一个字符串 Key 省内存吗,为什么? 本文先给出可直接复述的结论,再用最小代码说明Redis Hash 聚合存储 内存优化的工作方式、判断依据、项目边界和常见误区。
Redis 的 HINCRBY 和 HINCRBYFLOAT 在哈希字段上做计数各有什么边界? 本文先给出可直接复述的结论,再用最小代码说明Redis HINCRBY 哈希字段计数 溢出的工作方式、判断依据、项目边界和常见误区。
只需要 Redis 哈希中几个字段时,为什么优先 HMGET 而不是 HGETALL? 本文先给出可直接复述的结论,再用最小代码说明Redis HMGET HGETALL 选择 网络开销的工作方式、判断依据、项目边界和常见误区。
Redis 的 HSETNX 和 HSET 在字段已存在时行为有何不同,各适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明Redis HSETNX 字段不存在才写入的工作方式、判断依据、项目边界和常见误区。
Redis 用 GET 再 SET 实现计数器为什么不可靠,INCR 解决了什么? 本文先给出可直接复述的结论,再用最小代码说明Redis INCR 原子计数器 并发的工作方式、判断依据、项目边界和常见误区。