频繁整幅 getImageData/putImageData 的瓶颈在哪里,什么局部策略能降低主线程压力?
频繁整幅 getImageData/putImageData 的瓶颈在哪里,什么局部策略能降低主线程压力? 本文先给出可直接复述的结论,再用最小代码说明Canvas getImageData putImageData 性能 像素的工作方式、判断依据、项目边界和常见误区。
浏览器 · 并发编程面试题第 1 页,显示第 1–50 题,共找到 53 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
频繁整幅 getImageData/putImageData 的瓶颈在哪里,什么局部策略能降低主线程压力? 本文先给出可直接复述的结论,再用最小代码说明Canvas getImageData putImageData 性能 像素的工作方式、判断依据、项目边界和常见误区。
OffscreenCanvas 什么时候该转移到 Worker,转移所有权后主线程还能做什么? 本文先给出可直接复述的结论,再用最小代码说明OffscreenCanvas transferControlToOffscreen Worker的工作方式、判断依据、项目边界和常见误区。
HTTP/1.1 下浏览器对同一域名的并发连接数限制如何影响 SSE 和轮询,HTTP/2 如何缓解? 本文先给出可直接复述的结论,再用最小代码说明浏览器 同域名 连接数限制 SSE HTTP/2 多路复用的工作方式、判断依据、项目边界和常见误区。
为什么主线程上的同步 XMLHttpRequest 被废弃并应避免使用? 本文先给出可直接复述的结论,再用最小代码说明同步 XHR 主线程阻塞 废弃的工作方式、判断依据、项目边界和常见误区。
img 标签的 loading=lazy 与 decoding=async 分别推迟什么工作,两者对首屏大图是否都合适? 本文先给出可直接复述的结论,再用最小代码说明img loading lazy decoding async 图片懒加载 解码的工作方式、判断依据、项目边界和常见误区。
做元素可见性检测时,IntersectionObserver 相比 scroll 事件里调 getBoundingClientRect 有什么本质优势? 本文先给出可直接复述的结论,再用最小代码说明IntersectionObserver scroll getBoundingClientRect 可见性检测的工作方式、判断依据、项目边界和常见误区。
OffscreenCanvas 解决了什么渲染瓶颈,把 canvas 绘制移进 Worker 需要满足什么前提? 本文先给出可直接复述的结论,再用最小代码说明OffscreenCanvas Worker 离屏渲染的工作方式、判断依据、项目边界和常见误区。
把一个大任务拆成多个小任务时,scheduler.yield 相比 setTimeout(0) 在恢复优先级上有什么优势? 本文先给出可直接复述的结论,再用最小代码说明scheduler.yield 任务拆分 让出主线程的工作方式、判断依据、项目边界和常见误区。
为什么用 transform 和 opacity 做动画通常比修改 top/left 或 width 更流畅? 本文先给出可直接复述的结论,再用最小代码说明transform opacity 动画 合成线程 性能的工作方式、判断依据、项目边界和常见误区。
哪类计算适合移入 Web Worker,Worker 与主线程通信的 postMessage 结构化克隆会带来什么成本? 本文先给出可直接复述的结论,再用最小代码说明Web Worker 主线程 卸载计算 postMessage 成本的工作方式、判断依据、项目边界和常见误区。
为什么 localStorage 的同步读写会阻塞主线程? 本文先给出可直接复述的结论,再用最小代码说明localStorage 同步读写为什么阻塞主线程的工作方式、判断依据、项目边界和常见误区。
使用 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 实现的工作方式、判断依据、项目边界和常见误区。
在主线程与 Worker 之间用 postMessage 传递复杂对象时,数据是如何拷贝的? 本文先给出可直接复述的结论,再用最小代码说明postMessage 结构化克隆 Worker的工作方式、判断依据、项目边界和常见误区。
Worker 能访问主页面所在的 cookie 吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 访问 cookie的工作方式、判断依据、项目边界和常见误区。
加载 Worker 脚本文件时受哪些同源或 CORS 限制? 本文先给出可直接复述的结论,再用最小代码说明Worker 脚本同源与 CORS 限制的工作方式、判断依据、项目边界和常见误区。
普通 Web Worker 和 Service(服务)Worker 在被用户关闭标签页后的生命周期有何不同? 本文先给出可直接复述的结论,再用最小代码说明Worker 与 Service Worker 标签页关闭生命周期的工作方式、判断依据、项目边界和常见误区。
能否继承 Worker 类来创建自定义 Worker? 本文先给出可直接复述的结论,再用最小代码说明继承 Worker 类可行性的工作方式、判断依据、项目边界和常见误区。