目录
问题描述
- 问题表现:某页面 B 发生规律性卡顿。
- 排查现象:
- 新起一个浏览器标签页,独立访问页面 B,无卡顿现象;
- 从页面 A 打开新页面 B,B 发生规律性卡顿;
- 关闭页面 A ,页面 B 无卡顿现象;
- 保持页面 A 开启,手动新增一个浏览器标签页,输入页面 B 的 url,B 无卡顿现象;
- 结论:只有从页面 A 打开的页面 B,才会发生定期卡顿现象。
调试过程及原因
打开 chrome 浏览器的任务管理器。
发现从页面 A 打开页面 B 时(这里用了window.open()),页面 A 与页面 B 共用了一个进程。因页面 A 会定时执行大量页面渲染动作,CPU 陡增,导致页面 B 发生规律性卡顿。
注:下图仅为多标签页共用同一进程的示例图,并非真实的问题网站。
沉淀
一般情况下,每打开一个浏览器标签页,会新开一个独立进程,