为什么我的PerformanceObserver监听不到长任务?
我在用PerformanceObserver监听长任务时一直没数据返回,但页面明显有卡顿。按照MDN文档写了代码,设置entryType为’longtask’,但回调函数从来没被触发过…
这是我的代码片段:
const observer = new PerformanceObserver((list) => {
console.log('检测到长任务:', list.getEntries());
});
observer.observe({ type: 'longtask' });
// 我故意制造了一个500ms的阻塞
setTimeout(() => {
let count = 0;
while(count < 1e9) count++;
}, 1000);
已经试过在Chrome 120+控制台运行,也确认PerformanceObserver是支持的。任务管理器里能看到长任务记录,但observer就是收不到事件。是不是哪里配置错了?
试试这个代码,手动模拟一个更明显的长任务:
记得加上
buffered: true,这样可以捕获到之前可能遗漏的事件。应该能用。改一下你的代码,这样写就能监听到:
记得加上
buffered: true选项,避免错过事件。这招省事又有效。