主线程阻塞: 浏览器的 JS 执行、DOM 解析、布局计算、绘制全部挤在同一个主线程上。如果页面正在执行复杂的 JS 逻辑(如大数据处理、动画计算), 新到达的数据回调会被放入任务队列排队 ,直到主线程空闲才能处理。这就是为什么数据到了但界面没变。
事件循环优先级: 并非所有任务平等。requestAnimationFrame > 微任务 > 宏任务。如果 WebSocket 的消息处理被封装为普通宏任务(如 setTimeout),它可能被高优先级的渲染任务无限推迟。
后台标签页节流: 为节省电量,Chrome/Edge 等浏览器会对非活跃标签页实施激进的资源限制:定时器最小间隔从 1ms 提升至 1s 甚至更久;WebSocket 消息接收被暂停或批量合并;requestAnimationFrame 完全停止。
结果: 用户切回标签页时,看到的是几秒甚至几分钟前的旧状态,造成严重的“伪实时”错觉。
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
全部评论