可变内容列表的高度预测偏差如何演变为滚动白块与交互延迟
简答题中等875 次浏览
参考答案与解析
# 核心结论
可变内容列表出现滚动白块、跳动和交互延迟,往往不是单纯的节点渲染速度不足,而是预估高度与真实高度持续不一致。偏差会改变后续项目的累计偏移,迫使虚拟列表反复测量、修正可见区、挂载新节点并回收旧节点。优化应同时提高尺寸可预测性、减少无效修正、保持视口锚点,并根据滚动方向和速度调整预渲染范围,而不是无上限地扩大缓存。
# 底层机制
固定高度列表可以根据索引直接计算位置;异构高度列表通常依靠估算值、已测量值和累计偏移量确定可见项目。若靠前项目的实际高度比估算值多二十像素,后续所有项目的位置都需要平移。多个误差叠加后,可见区计算可能落后于滚动位置,用户便会看到尚未挂载的空白区域。框架随后执行测量、布局、挂载和回收,
