滚动热力图的核心公式是 scrollDepth = (scrollTop + clientHeight) / scrollHeight,用来衡量用户看到的页面比例。RUM SDK 没有把每次滚动作为离散事件上报,而是在每个 View 生命周期内持续追踪最大滚动深度和达到深度的时间,View 结束时上报 scroll.max_depth、scroll.max_depth_scroll_top、scroll.max_scroll_height 等摘要字段。性能上,SDK 通过 throttle(leading + trailing 模式)节流,每 100ms 最多采样一次;同时使用 ResizeObserver 监听 body 高度变化,覆盖懒加载和无限列表;View 结束时主动 cancel 尾调用,避免跨 View 串数据。整体开销可控,同时能真实反映内容可见性。




