为什么主线程上的同步 XMLHttpRequest 被废弃并应避免使用?
为什么主线程上的同步 XMLHttpRequest 被废弃并应避免使用? 本文先给出可直接复述的结论,再用最小代码说明同步 XHR 主线程阻塞 废弃的工作方式、判断依据、项目边界和常见误区。
事件循环专题面试题第 1 页,显示第 1–28 题,共找到 28 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么主线程上的同步 XMLHttpRequest 被废弃并应避免使用? 本文先给出可直接复述的结论,再用最小代码说明同步 XHR 主线程阻塞 废弃的工作方式、判断依据、项目边界和常见误区。
在 Web Worker 中执行耗时任务为什么不会阻塞页面主线程? 本文先给出可直接复述的结论,再用最小代码说明Web Worker 不阻塞主线程原因的工作方式、判断依据、项目边界和常见误区。
Worker 里的事件循环和主线程的事件循环是完全独立的吗? 本文先给出可直接复述的结论,再用最小代码说明Worker 事件循环独立于主线程的工作方式、判断依据、项目边界和常见误区。
调用 worker.terminate() 后,Worker 正在执行的任务和资源会被怎样处理? 本文先给出可直接复述的结论,再用最小代码说明worker.terminate 资源清理的工作方式、判断依据、项目边界和常见误区。
代码调用 dispatchEvent 时,监听器在方法返回前同步执行,所以同步修改的 DOM 下一行就能读到;Promise 与定时器则不会被等待。可取消事件的返回值能表达同步否决,但不能用 async 监听器来等待弹窗确认或服务端校验。
同一次事件派发中的父子监听器拿到同一个 Event,但 currentTarget 会随当前监听器改变,异步读取时往往已为空。脚本能在前次派发结束后复用自建事件,不能在派发中重入;每次业务动作新建对象并提前保存 ID、坐标更可靠。
DataLoader 如何通过批处理解决 GraphQL 的 N+1 问题? 本文先给出可直接复述的结论,再用最小代码说明GraphQL DataLoader 批处理 N+1的工作方式、判断依据、项目边界和常见误区。
以浏览器 Event Loop 为范围,逐步分析同步代码、Promise、queueMicrotask 与 setTimeout 的执行顺序,讲清微任务检查点、渲染时机与常见面试误区。
Node.js 如何启动独立后台进程,detached 与 unref 各负责什么? 本文先给出可直接复述的结论,再用最小代码说明child_process detached 后台进程的工作方式、判断依据、项目边界和常见误区。
说明同步子进程阻塞当前 Node 线程事件循环的范围,区分 spawnSync 返回结果与 execSync 抛错,并纠正 timeout 一定按时返回的误解,给出 CLI、启动任务和服务请求的选择依据。
不引入 worker_threads 时如何把一个长 CPU 计算拆小避免阻塞事件循环? 本文先给出可直接复述的结论,再用最小代码说明CPU 任务 分片 setImmediate 事件循环的工作方式、判断依据、项目边界和常见误区。
设计 Node.js 接口服务时如何判断一个任务应该卸载到 Worker 线程? 本文先给出可直接复述的结论,再用最小代码说明CPU 密集 判断 卸载 Worker 线程的工作方式、判断依据、项目边界和常见误区。
在 Worker 线程中 AsyncLocalStorage 等异步上下文能否跨线程传递? 本文先给出可直接复述的结论,再用最小代码说明worker_threads AsyncLocalStorage 上下文的工作方式、判断依据、项目边界和常见误区。
为什么 Node.js 的 CPU 密集任务应该放到 worker_threads 而不是主线程? 本文先给出可直接复述的结论,再用最小代码说明worker_threads CPU 密集 事件循环 阻塞的工作方式、判断依据、项目边界和常见误区。
结合事件循环延迟、CPU 栈和请求阶段耗时定位 Node.js 卡顿,给出 monitorEventLoopDelay 的纳秒转毫秒示例,说明统计窗口、采样局限和下游等待不能混为同一根因。
说明事件循环 close callbacks 只涉及部分资源关闭回调,区分 socket 生命周期、普通 EventEmitter 同名事件和自定义流实现,避免从事件名字推导固定阶段或业务成功。
JSON.parse 一个超大请求体为什么也会阻塞 Node.js 事件循环,有哪些缓解方式? 本文先给出可直接复述的结论,再用最小代码说明JSON.parse 阻塞事件循环 大请求体的工作方式、判断依据、项目边界和常见误区。
如何用 perf_hooks 的 monitorEventLoopDelay 量化 Node.js 事件循环延迟? 本文先给出可直接复述的结论,再用最小代码说明monitorEventLoopDelay 事件循环延迟 直方图的工作方式、判断依据、项目边界和常见误区。
通过分段求和示例展示如何保存游标与累计结果、在片段间安排 setImmediate,说明首片仍同步执行、总复杂度不变,以及片段预算、取消和不可拆分计算的限制。
Node.js 事件循环有哪些阶段,Node 20 之后定时器位置有什么变化? 本文先给出可直接复述的结论,再用最小代码说明Node.js 事件循环阶段 timers poll check的工作方式、判断依据、项目边界和常见误区。
Node.js 进程什么时候自然退出?哪些未决的句柄或定时器会阻止退出? 本文先给出可直接复述的结论,再用最小代码说明Node.js 进程退出 活跃句柄 ref unref的工作方式、判断依据、项目边界和常见误区。
Node.js 的 setTimeout 为什么无法保证精确的毫秒级触发,最小延迟和影响因素有哪些? 本文先给出可直接复述的结论,再用最小代码说明setTimeout 最小延迟 精度 Node.js 1ms的工作方式、判断依据、项目边界和常见误区。
Node.js 中每个事件循环阶段结束后微任务队列是如何被清空的? 本文先给出可直接复述的结论,再用最小代码说明Node.js 微任务队列 阶段之间 清空时机的工作方式、判断依据、项目边界和常见误区。
Node.js 如何度量事件循环延迟(event loop lag),该指标升高说明服务出了什么问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js event loop lag 度量 升高原因的工作方式、判断依据、项目边界和常见误区。
Node.js 服务进程退出码(0/1 及 process.exitCode 与 process.exit())应该如何规范使用? 本文先给出可直接复述的结论,再用最小代码说明Node.js 退出码 exitCode 与 process.exit 规范的工作方式、判断依据、项目边界和常见误区。
Node.js 进程句柄(handle)泄漏导致无法退出,如何用 process._getActiveHandles 或 why-is-node-running 思路定位? 本文先给出可直接复述的结论,再用最小代码说明Node.js 进程不退出 active handles 排查的工作方式、判断依据、项目边界和常见误区。
eventfd 和 timerfd 为什么经常出现在 epoll 程序里,它们解决了什么? 本文先给出可直接复述的结论,再用最小代码说明eventfd timerfd epoll 线程唤醒 定时的工作方式、判断依据、项目边界和常见误区。
非阻塞 fd 上 read 返回 EAGAIN 后正确的事件循环写法是什么? 本文先给出可直接复述的结论,再用最小代码说明O_NONBLOCK EAGAIN 非阻塞 循环读取的工作方式、判断依据、项目边界和常见误区。