E6.07.2skeleton mismatch设计
结构与实际内容不符会造成跳变
别名: 骨架错位 · placeholder mismatch · 加载跳变
概念解释
骨架承诺了即将出现的结构,内容到达时若行高、块数、图文位置对不上,画面会瞬间重组。这种跳变把预演变成一次食言:用户已经把注视放在「标题该在的地方」,真实标题却在别的高度,列表从三行骨架变成十行真数据,下面的模块被顶走。骨架的价值在于稳定空间预期;错配把这份预期连同到达瞬间的定向一起毁掉,还不如一开始就空着。
机制
视觉系统按骨架划好的区域准备接收物体。物体落在区域外,就要重新分段、重新找锚点,预演所节省的定向全部吐回去,外加一次「刚才那张图作废」的修正。跳变还带动已经出现的真内容:第一屏的按钮被后到的图片顶出视口,用户伸手去点的坐标已经换了主人。错配常见来源是骨架按理想态画(总有封面图、总是三行摘要),真实数据却缺图、摘要只有半行、或权限藏掉了整块。骨架按平均态画,极端项仍会跳;按最大态画,短内容又会留下一块突然塌掉的空白。问题的核心不是美不美,是承诺的几何有没有被兑现。
边界
字体回退、图片延迟解码造成的二次跳变,不完全是骨架的错,但骨架若提前按图片已在的高度占位,至少能挡住第一跳。无限列表只骨架出首屏,后续行本来就会增长,这不是错配,只要首屏几何稳定。广告或推荐插入真实流时,骨架无法预知插入点,与其猜错,不如不把那一块画进骨架。从骨架切到空状态(其实没有数据)也是一种结构食言,应尽快换成空模板,而不是先跳成几行假卡片再塌掉。
怎么落地
- 用真实数据的几种形态各截一帧:有图 / 无图、短文案 / 长文案、少模块 / 多模块,检查骨架几何是否都能承接。
- 缺省块(没有封面)在骨架里就不要画封面槽;宁可少一块,不要多一块再塌。
- 图片和可变高模块先按稳定高度占位,解码完成用淡入,避免把已渲染的文字再推一遍。
- 验证:从骨架到首帧做叠图或录屏逐帧。标题、主按钮、列表第一条的位置若换了格子,错配已经发生。