Long Tasks API 怎样帮助定位主线程卡顿?
使用 PerformanceObserver 观察超过 50 毫秒的任务,理解它能说明什么、不能直接说明什么,以及如何结合 INP 诊断。
参考答案
长任务通常指主线程连续执行超过 50 毫秒的任务。PerformanceObserver 可以观察 longtask 条目,帮助发现脚本执行、样式布局或其他主线程工作造成的阻塞时间。
它只说明存在长任务,不会自动告诉你业务函数为什么慢,也不能直接等同于一次交互的 INP。诊断时应结合任务起止时间、脚本来源、用户交互时间、事件处理耗时和浏览器性能面板;真实用户数据还要按设备、网络和页面场景分组。
优化方向包括拆分同步计算、减少不必要渲染、把适合的 CPU 工作放到 Worker、延迟非关键脚本和降低单次任务粒度。不要为了让条目消失而把工作拆成大量微任务;微任务饥饿同样会阻塞渲染和交互。