打开一个后台系统,有时你只会看到一片空白;有时屏幕中央转着一个圈;有时骨架屏闪了两遍,Toast 又弹出来一次——最后数据才姗姗来迟。
同样是「加载中」,用户得到的感受可以天差地别:
- 无反馈:不知道系统在不在工作
- 基础指示:知道在加载,但不知道还要等多久
- 信息更完整:「加载中…预计 2s」——焦虑被预期管理压下去一截
Loading 不是装饰。它是数据传输间隙里,界面替系统说的一句话:我还在,你别走。
这篇文章沿着一次 B 端投放平台的加载研究展开,走完七件事:定义、问题与作用、影响因素、常见范式、体验维度、应用场景、落地实践。
加载到底是什么?
先看业界怎么说。Apple HIG 强调进度指示器要让人知道应用没有停滞;Material 要求实时显示流程状态;Ant Design 则直接点出——即时反馈会增加信赖感。Fluent、Spectrum、Lightning、Geist、Carbon 措辞不同,共识却很清楚:加载是状态沟通,不是转圈炫技。
我个人的理解可以压缩成一句话:
拆开看,它围绕五件事展开:即时响应、进度感知、状态可视、系统运行,以及始终站在用户一侧的体验目标。
更关键的是两个时间维度。用户与界面之间,是人机交互,设计可以发力;界面与服务器之间,是数据交换,技术可以发力。我们真正要解决的,是机器处理时间不变的前提下,优化等待体验。
假如等待不可避免,设计要做的是:让用户在等待中感知到系统正在努力、注意力不被撕碎,从而减缓焦虑、更沉浸、少一点无聊。
为什么 B 端尤其要重视 Loading?
客观条件很硬:网络慢、资源大、数据表宽、接口串行——用户与数据库之间的反馈链很容易断成一段 gap。这在复杂数据后台里几乎是日常,出现频率高。
主观后果同样硬:加载设计不到位,用户会在等待中失去参与感,搞不清系统状态,焦虑和不满意会叠上来,严重时直接影响留存。问题影响显著。
所以 Loading 在 B 端不是「锦上添花」,而是体验补丁里最关键的那一块。
落地时,我习惯分三步走:先参考现有范式,再聚类具体场景,最后划分体验维度。下面按这个顺序展开。
三种常见范式,怎么选?
按时间是否可量化、使用频率高低,可以把加载范式放进一张决策图。Spinner、骨架、进度环、进度条出现频率高;动画图标、加载文案、百分比、混合指示器相对低频。
落地时,我更倾向归并为三类:
01 加载指示器(Loading Indicator)
通过持续运动的动画,指示进度未定的加载过程。
- 任务进程无法量化
- 适合短时加载(通常 1s 内感知即可结束)
- 不需要精确时间指示
典型做法:按钮内 Spinner(Evernote 发布按钮)、蒙版 + 中心动效(Airbnb 支付确认)。要点是在用户操作位置给反馈,维持视觉焦点稳定,同时立刻挡住误操作。
Threads 用全局三点动画,是一种很泛用的全页指示;Cosmos 把指示器和「Creating your account」放在一起——短等待也可以说一句人话,用户会更安心。
02 骨架屏(Skeleton)
用占位 UI 展示页面结构的粗略轮廓,提前建立内容预期。
- 进程仍难量化,但等待偏长(约 3–10s)
- 结构固定、数据可变——列表、表格、表单分区最合适
Shopify 结账页只在「可变数据区」上骨架,固定表单项直接呈现;OpenSea 满屏骨架避免表格加载完成后的结构突变。
Qatalog 的数据表骨架同理;Grammarly 用更轻量的渐隐骨架降低压迫感。骨架的价值不在「好看」,而在减少 CLS(布局偏移)——终态长什么样,占位就该长什么样。
03 进度指示器(Progress Indicator)
指示进度明确可视的加载过程。
- 进展可衡量,或可用虚拟进度估算
- 适合较长流程(3–10s 及以上)
- 可加百分比、步骤文案强化掌控感
Wayyy 用「进度环 + 步骤文本 + 数字占比」叠加 Buff;Tines 用品牌 Logo + 进度条维持品质感。
Circle 把指示器放进 Toast,减少视线遮挡;Glide 在模态里提供可取消的长任务反馈——过程进行中仍能改主意,才不会把等待变成一段播完才能点的片。
体验不只靠「快」:指标与视觉原则
Google Core Web Vitals 把加载体验拆成可测量维度:LCP 看主要内容多快出现,FID / INP 看交互响应,CLS 看布局稳不稳。Chrome 团队还用四个问题框住体验——正在发生吗?有用吗?可用吗?令人愉快吗?
有研究指出:加载体验里约 75% 来自时间因素,25% 来自视觉因素。数字会变,但方向不会——视觉是感知速度的重要杠杆。机器处理时间短期改不动时,设计仍然有 1/4 的空间可以做。
北大相关研究进一步提炼了三条视觉原则,可以和指标对照着用:
- 完整性原则 → 感知加载速度:同样 3 秒,先露出部分结构的内容,会被感觉更快
- 运动原理 → 平滑度:骨架微光、渐显过渡,降低等待焦虑
- 闪烁原理 → 视觉平稳性:避免元素突然跳动,保护用户心智模型
这五维雷达——感知加载速度、加载响应度、运行时响应度、视觉平稳性、平滑度——可以作为评审一张加载方案是否「完整」的检查表。
先聚类场景,再谈样式
研究投放平台时,用户原话很直白:「投放平台加载状态一直都很膈应。」拆开看,痛点并不神秘:步骤多且慢、长等待引人焦虑、短加载乱视线、场景用法不一致、占位跳动明显、多种样式交错。
录屏里能看到更具体的毛病:闪白屏、一次加载叠好几种骨架、不同样式交错出现、页面间跳跃感明显、同类场景用法不一致。
在 B 端后台里,我习惯先把加载情境按变换范围分档:
| 层级 | 典型场景 | 常见痛点 |
|---|---|---|
| 全页面变换 | 首页、财务页、进入广告 / 创意层 | 闪白屏、步骤多、不连贯 |
| 区域变换 | 切换营销目的、创意类型、Tab | 跳动感、样式不统一、强打扰 |
| 局部元素变换 | 侧拉弹窗、弹窗内字段、上传进度 | 同类场景用法不一致 |
| 流程型等待 | 批量修改、组件关联选择 | 弹窗碍眼、反馈不自然 |
问题归纳下来,往往落在三个词上:
- 多余:一次加载里叠了重复步骤,感知时间被拉长
- 杂乱:同类场景 Spinner、骨架、Toast 乱入
- 误用:新版界面与旧骨架结构冲突,骨架反而加剧跳动
设计目标也因此清晰:精简步骤、统一样式、规范场景——最后沉淀成可查阅、可对接开发的规范文档。
三条基础解法
三条解法分别打在雷达的不同轴上:删繁就简提升加载响应;进程感知提升感知速度;流畅过渡稳住平滑度与视觉平稳性。
1. 删繁就简:别让加载成为「显眼包」
加载本质是弥补传输延迟的补丁。如无必要,让过程轻量、无感。
- 能一步完成的,不要拆成四步(白屏 → 骨架 → 又一次骨架 → 全局 Toast + 局部动画)
- 能一个指示器解决的,不要在同屏挂三个 Spinner
- 删掉与最终布局不匹配的「无意义骨架」,直接展示可获取的页面结构
全页跳转的优化,往往就是把 Before 的四段跳跃,收成 After 的「与终态匹配的布局 + 单一全局加载」。加载最好是一步,或更少。
局部操作也一样。批量修改这类动作,反馈应该长在用户正在点的地方,而不是再弹一层全局遮罩。
两种都成立,只是职责不同:
- 按钮内加载:动作—响应关系清楚,视觉焦点稳定
- 边缘 Toast:轻度响应,少打断主任务心流
2. 进程感知:让等待保持「在变」
根据运动原理,加载元素的运动变化能传递渐进感,加速时间感知——哪怕真实耗时未变。时间未知时,也可以给一段估算范围内的虚拟进度。
- 匀速环 → 加速环 → 渐满环:动感递进
- 已加载项打勾、未完成项留白:内容逐步更新
- 骨架微光(shimmer):告诉用户「还在推进」
若预期超过 5s,长时间同速旋转会被大脑归类为「不变」。这时要引入变量——步骤文案、虚拟进度、阶段切换——避免用户以为卡死。
3. 流畅过渡:稳住,再动
依据闪烁原理,尽量减少元素突变,用过渡动画衔接状态。两页之间不变的部分,就是空间一致性:从哪进、从哪出,用户才知道东西被送到了哪里。
- 视觉锚点:两页间不变的 Tab、侧栏、顶栏不要跟着闪
- 骨架 → 内容:同结构渐变交替,而不是突然替换
- 局部反馈位置:批量提交优先按钮内加载;若用 Toast,放屏幕边缘,减少对主任务的打断
优化之后,页面应该看起来像「一直在那儿」,而不是「重新出现了一次」。
落地时的一条工作流
一次完整的加载优化,我通常按这五步走:
- 问题溯源:录屏拆步骤,梳理线上过渡态痛点
- 取百家所长:对照竞品与设计系统(HIG、Fluent、Material 等),校准定义与范式
- 动效原型:发散方案,验证原则是否成立
- 与前端对齐:评估骨架与动态数据的实现成本,明确技术规范与迭代节奏
- 沉淀文档:原则、模式、场景、更新日志——让设计可复用、可评审
规范里至少写清:全页用骨架、操作反馈用按钮态或边缘 Toast、需阻断交互时用蒙版、特殊长任务如何取消。
加载只是设计系统的一枚碎片
加载指示器、进度条、骨架屏——都只是组件库里的一个模式。它们要和技术规范、设计令牌、品牌基调、布局模板放在一起,才算真正「进系统」。
设计系统也不会真正完工。Toast、导航、工具栏、流程编排……都还在演化。对待 Loading 的态度,其实和对待整个系统一样:像做产品一样做规范,听使用它的人怎么说。
等待无法从互联网产品里删除。但我们可以决定:用户等待时,界面是在沉默、混乱,还是清楚地告诉他——东西正在来,而且你知道它大概长什么样。
这就是 Loading 设计最值得投入的地方。
最后留几份当时用过的参考,方便接着挖:
- UI Patterns:超全的设计模式
- Design Spells:动效细节
- Design Systems Surf:一流的设计系统