IndexedDB 事务的原子性如何保证?
IndexedDB 事务的原子性如何保证? 本文先给出可直接复述的结论,再用最小代码说明IndexedDB 事务原子性保证的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 22 页,收录第 1051–1100 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
IndexedDB 事务的原子性如何保证? 本文先给出可直接复述的结论,再用最小代码说明IndexedDB 事务原子性保证的工作方式、判断依据、项目边界和常见误区。
IndexedDB 中 readwrite 和 versionchange 事务的作用域有什么不同? 本文先给出可直接复述的结论,再用最小代码说明IndexedDB 事务模式与作用域的工作方式、判断依据、项目边界和常见误区。
IndexedDB 版本变更流程中 onupgradeneeded 的作用是什么? 本文先给出可直接复述的结论,再用最小代码说明IndexedDB onupgradeneeded 版本升级的工作方式、判断依据、项目边界和常见误区。
localStorage 存储中 JSON 序列化和深层嵌套有什么问题? 本文先给出可直接复述的结论,再用最小代码说明localStorage 存 JSON 嵌套对象的问题的工作方式、判断依据、项目边界和常见误区。
在浏览器隐身模式下 localStorage 可能遇到什么限制? 本文先给出可直接复述的结论,再用最小代码说明隐身模式 localStorage 限制的工作方式、判断依据、项目边界和常见误区。
localStorage 的 setItem、getItem 和 removeItem 与直接属性赋值有什么差别? 本文先给出可直接复述的结论,再用最小代码说明localStorage setItem 与属性赋值区别的工作方式、判断依据、项目边界和常见误区。
为什么收到 storage 事件后获取 localStorage 可能不是最新值? 本文先给出可直接复述的结论,再用最小代码说明storage 事件读取旧值问题的工作方式、判断依据、项目边界和常见误区。
为什么 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 的情况的工作方式、判断依据、项目边界和常见误区。
使用 SharedArrayBuffer 进行多线程编程时,Atomics 对象提供哪些操作来避免竞态? 本文先给出可直接复述的结论,再用最小代码说明Atomics 同步操作避免竞态的工作方式、判断依据、项目边界和常见误区。
创建一个专用 Worker 时,它的全局作用域和主线程有什么不同? 本文先给出可直接复述的结论,再用最小代码说明DedicatedWorkerGlobalScope 全局作用域差异的工作方式、判断依据、项目边界和常见误区。
为什么使用 SharedArrayBuffer 需要启用跨源隔离(cross-origin isolation)? 本文先给出可直接复述的结论,再用最小代码说明SharedArrayBuffer 跨源隔离 COOP COEP的工作方式、判断依据、项目边界和常见误区。
在 Web Worker 中执行耗时任务为什么不会阻塞页面主线程? 本文先给出可直接复述的结论,再用最小代码说明Web Worker 不阻塞主线程原因的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 的生命周期包括哪几个阶段?各阶段对应哪些事件? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 生命周期 install activate的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 如何与打开的页面进行双向通信? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 与页面双向通信的工作方式、判断依据、项目边界和常见误区。
Service(服务)Worker 的 fetch 事件如何拦截并处理页面发出的网络请求? 本文先给出可直接复述的结论,再用最小代码说明Service Worker fetch 拦截 respondWith的工作方式、判断依据、项目边界和常见误区。
当 Service(服务)Worker 的脚本文件更新时,浏览器如何决定是否启用新版本? 本文先给出可直接复述的结论,再用最小代码说明Service Worker 脚本更新机制的工作方式、判断依据、项目边界和常见误区。
SharedArrayBuffer 在 Worker 之间共享内存时,它的内存可见性如何保证? 本文先给出可直接复述的结论,再用最小代码说明SharedArrayBuffer 内存可见性 Atomics的工作方式、判断依据、项目边界和常见误区。
共享 Worker 如何向它所有的连接端口广播消息? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker 向所有端口广播的工作方式、判断依据、项目边界和常见误区。
共享 Worker 如何在一个浏览器里被多个标签页或 iframe 连接? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker 多标签页连接的工作方式、判断依据、项目边界和常见误区。
用 SharedWorker 时,客户端通过 port 的 postMessage 与 onmessage 通信,需要注意什么? 本文先给出可直接复述的结论,再用最小代码说明SharedWorker port 通信 start 注意事项的工作方式、判断依据、项目边界和常见误区。
用 Transferable 对象(如 ArrayBuffer)在 Worker 间传递数据,有什么性能和安全优势? 本文先给出可直接复述的结论,再用最小代码说明Transferable ArrayBuffer 零拷贝传递的工作方式、判断依据、项目边界和常见误区。
讲解浏览器中专用 Worker、共享 Worker、Service Worker 三类线程的职责、生命周期差异,给出选型条件、常见误用边界与判断方法。
BroadcastChannel 和 SharedWorker 在跨标签页通信上有什么不同? 本文先给出可直接复述的结论,再用最小代码说明BroadcastChannel 与 SharedWorker 跨标签通信对比的工作方式、判断依据、项目边界和常见误区。
两个消息在 Worker 和主线程之间发送时,它们的到达顺序能保证吗? 本文先给出可直接复述的结论,再用最小代码说明postMessage 消息到达顺序保证的工作方式、判断依据、项目边界和常见误区。
在 Worker 中使用 console.log 的输出会显示在浏览器开发者工具哪里? 本文先给出可直接复述的结论,再用最小代码说明Worker console.log 调试输出的工作方式、判断依据、项目边界和常见误区。
postMessage 传递不可克隆的对象(如函数、DOM 节点)时会怎样? 本文先给出可直接复述的结论,再用最小代码说明postMessage DataCloneError 不可克隆对象的工作方式、判断依据、项目边界和常见误区。
在一个 Worker 中的全局变量能否在多个消息任务之间共享? 本文先给出可直接复述的结论,再用最小代码说明Worker 全局变量跨消息共享的工作方式、判断依据、项目边界和常见误区。
Worker 之间互相等待消息时可能出现死锁吗?如何避免? 本文先给出可直接复述的结论,再用最小代码说明Worker 消息等待死锁与避免的工作方式、判断依据、项目边界和常见误区。
如何检测浏览器是否支持某个 Worker 特性(如 SharedWorker 或 SharedArrayBuffer)? 本文先给出可直接复述的结论,再用最小代码说明检测 Worker SharedArrayBuffer 特性支持的工作方式、判断依据、项目边界和常见误区。
Worker 内部抛出的异常如何传递到主线程并被捕获? 本文先给出可直接复述的结论,再用最小代码说明Worker 异常传递 onerror 捕获的工作方式、判断依据、项目边界和常见误区。
在 Worker 中抛出的 Promise 拒绝会不会触发全局错误事件? 本文先给出可直接复述的结论,再用最小代码说明Worker unhandledrejection 未处理拒绝的工作方式、判断依据、项目边界和常见误区。
Worker 里的事件循环和主线程的事件循环是完全独立的吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 事件循环独立于主线程的工作方式、判断依据、项目边界和常见误区。
在 Worker 中通过 importScripts() 加载多个脚本时,执行的顺序和错误处理是怎样的? 本文先给出可直接复述的结论,再用最小代码说明importScripts 加载顺序与错误处理的工作方式、判断依据、项目边界和常见误区。
在一个 Worker 内部还能再创建新的 Worker 吗?嵌套 Worker 有什么限制? 本文先给出可直接复述的结论,再用最小代码说明嵌套 Worker 创建与限制的工作方式、判断依据、项目边界和常见误区。
解释 Web Worker 可访问与不可访问的 API 边界:独立全局作用域无 window 和 DOM,但保留网络、存储、定时器等能力,并给出工程判断方法。
有哪些常见的 Worker 内存泄漏场景,比如忘记 terminate 或停止端口? 本文先给出可直接复述的结论,再用最小代码说明Worker 内存泄漏 terminate 端口的工作方式、判断依据、项目边界和常见误区。
MessageChannel 和 MessagePort 与 Worker 的 postMessage 有什么关系? 本文先给出可直接复述的结论,再用最小代码说明MessageChannel MessagePort 与 Worker 通信的工作方式、判断依据、项目边界和常见误区。
在 Worker 中用 type='module' 加载 ES 模块脚本与经典脚本有何不同? 本文先给出可直接复述的结论,再用最小代码说明Worker type module ES 模块加载的工作方式、判断依据、项目边界和常见误区。
在 Worker 中可以使用 XMLHttpRequest 或 fetch 发起网络请求吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 中 fetch XMLHttpRequest 网络请求的工作方式、判断依据、项目边界和常见误区。
在 Worker 中监听消息时,用 onmessage 属性和 addEventListener('message') 有何区别? 本文先给出可直接复述的结论,再用最小代码说明Worker onmessage 与 addEventListener 区别的工作方式、判断依据、项目边界和常见误区。
当需要并行执行多个计算任务时,使用一个 Worker 池(pool)比单个 Worker 有什么好处? 本文先给出可直接复述的结论,再用最小代码说明Worker 池并行任务优势的工作方式、判断依据、项目边界和常见误区。
在 Worker 与主线程之间如何处理请求-响应的模式(如消息 ID)?没有现成的 API,怎么实现? 本文先给出可直接复述的结论,再用最小代码说明Worker 请求响应模式 消息 ID 实现的工作方式、判断依据、项目边界和常见误区。