MODULE 09 / LESSON 04

感知性能与稳定布局

把等待、跳动与慢网络纳入设计。

36 / 60 课适配不同平台

先理解这个概念

真实速度与感知速度都影响体验。稳定的布局、及时的点击反馈和可理解的进度可以减少不确定性。图片与内容占位应提前保留空间,避免用户准备点击时目标突然移动。

等待体验包含真实耗时、反馈时机和布局稳定。骨架屏能预示结构,但内容不断跳动会让人误点;立即显示旧数据能减少空白,但必须区分旧状态与正在更新。性能设计应让用户知道系统在工作,并尽可能保持可继续操作的上下文。

用程序员的语言说

性能预算也是体验预算,不只是工程监控数字。

记住这三个原则

  1. 01

    为图片和异步区域预留合理尺寸。

  2. 02

    已知进度显示真实进度,未知进度不要伪造百分比。

  3. 03

    让主要任务尽早可用,次要内容渐进加载。

实际设计时,分三步做

  1. STEP 01

    区分首次加载、局部刷新和用户提交,不把所有等待都替换成全屏加载。只阻塞真正依赖结果的操作。

  2. STEP 02

    为图片和异步区域预留合理空间,避免内容出现后把用户正在点击的按钮推走。

  3. STEP 03

    补上慢响应、失败与重试,核对缓存内容的更新时间;不要让一个永久旋转的图标成为最终状态。

一个容易理解的例子

BEFORE / 常见问题

图片加载后把“删除”按钮推到用户原本要点的“查看”位置。

AFTER / 可以这样改

预留图片比例,控制布局移动,动作反馈立即出现。

稳定位置不仅舒服,也能减少误操作。

展开看:从场景到设计决定

仪表盘刷新时可以保留上次数据,在相应区域说明正在更新,完成后替换并显示更新时间。首次没有数据时再使用与真实结构匹配的占位。若刷新失败,应保留旧数据并标明更新未成功,而不是把旧值当成最新结果。感知快不能靠隐瞒数据的新旧来实现。

适用边界与取舍

预加载会消耗网络与设备资源,应围绕可能发生的访问使用。乐观显示也需要可靠的回滚与冲突处理,并非所有提交都适合提前宣告成功。

YOUR TURN

把这个原则用一次

先做一个小判断

为一个大文件上传设计等待状态。

再完成一份设计练习

为课程切换设计首次加载、缓存命中和网络失败三种体验,说明正文与导航何时更新。

容易踩的坑

不能用骨架屏掩盖永远无法结束的加载,也不要把失败误写为“还在努力”。

继续查阅

本课为原创教学解释。具体平台规则与标准可查阅官方资料。

MDN · CSS layout