GitHub 弃用 ResizeObserver 改循环测量
先了解这件事
2026 年 10 月 13 日,GitHub 说明了为何放弃用 ResizeObserver 测量动态块高度。早先 GitHub 曾为每个动态块配备 ResizeObserver,将测得高度写回布局,但最终否决了这一设计,原因是观察者把高度写回其正在监听的布局会触发自身重跑,且开销随挂载块数量增长。随后 GitHub 上线了一套循环测量机制,仅在空闲时触发,作用范围约为视口周围 2400px;已挂载的块是基准真值,观察者通常只标记待测块而不直接写入高度,唯一例外是用户操作导致可见块缩放时,可在绘制前同步校正一次,使下方评论与代码同步移动且不重新打开反馈循环。GitHub 还指出,任何“用户是否正在交互”的检测都必须区分真实用户输入与自身副作用导致的滚动,不能把代码自身触发的滚动误判为用户操作。新报道补充称,GitHub 将文档拆分为两个独立高度域:代码行高度固定,可提前计算全部几何布局且无需修正;评论高度不可预测,因此不再强制两者共用同一套几何。
AI 根据报道生成 · 1 小时前更新
事件进展
- 10月13日 02:06 · 1 篇报道GitHub:判断"用户是否在交互"需区分真实输入与自身副作用引发的滚动GitHub(@github):GitHub:判断"用户是否在交互"需区分真实输入与自身副作用引发的滚动
- 10月13日 02:06 · 3 篇报道GitHub 为何放弃用 ResizeObserver 测量动态块高度GitHub(@github):GitHub 为何放弃用 ResizeObserver 测量动态块高度
报道时间线
沿着报道,了解事件的不同侧面。
- GitHub(@github)GitHub:判断"用户是否在交互"需区分真实输入与自身副作用引发的滚动
GitHub 指出,任何"用户是否正在交互"的检测都必须区分真实用户输入与自身副作用导致的滚动。该判断针对页面滚动场景,强调不能把代码自身触发的滚动误判为用户操作。
- GitHub(@github)GitHub 发布基于空闲触发的循环测量方案,围绕视口约 2400px 范围校正块高度
GitHub 上线了一套循环测量机制,仅在空闲时触发,作用范围约为视口周围 2400px。已挂载的块是基准真值,观察者通常只标记待测块而不直接写入高度;唯一例外是用户操作导致可见块缩放时,可在绘制前同步校正一次,使下方评论与代码同步移动且不重新打开反馈循环。
- GitHub(@github)GitHub 为何放弃用 ResizeObserver 测量动态块高度
GitHub 曾为每个动态块配备 ResizeObserver,将测得高度写回布局,但最终否决了这一设计。原因是观察者把高度写回其正在监听的布局会触发自身重跑,且开销随挂载块数量增长。
- GitHub(@github)GitHub 将代码行与评论拆分为两个独立高度域
GitHub 将文档拆分为两个独立高度域:代码行高度固定,可提前计算全部几何布局且无需修正;评论高度不可预测,因此不再强制两者共用同一套几何。
本事件热度走势
还没有足够的连续观测数据,暂不绘制趋势。