跳到主要内容
前端术语库

加载、空状态和出错时页面该怎么反馈

加载中、没数据、出错和操作结果,每种情况该用骨架屏、空状态还是轻提示,一篇讲清楚。

AI 写页面时经常只写「数据正常回来」的那一种情况。真实用户会碰到加载慢、没数据、接口报错,这几种画面都要单独设计。

等待中:加载状态

加载状态有几种形式,按场景选:

  • 骨架屏:页面或列表首次加载、内容结构已知时,先按真实内容的形状显示灰色块,数据回来后页面不跳动。
  • 加载中:点击提交后等接口返回、局部刷新这类一两秒内的等待,用转圈图标。提交按钮转圈时要同时进入禁用状态,防止连点。
  • 进度条:上传、导出这类能拿到真实进度的长任务,显示百分比。拿不到真实进度就别做假进度条。

没数据:空状态

列表、表格没有内容时显示空状态,不要只写「暂无数据」四个字:说明为什么是空的,并给出下一步操作,比如「还没有项目,新建一个」「没有匹配结果,试试清除筛选条件」。数据还在加载时,也不能先闪一下空状态。

出错了:错误状态

错误状态要说人话、说原因、给出路。一个卡片加载失败,就在那个卡片里显示「加载失败,重试」,不要整页白屏;接口报错时也不能显示成「暂无数据」,否则会掩盖真正的问题。

操作之后:怎么告诉用户结果

  • 轻提示:保存、复制成功这类一句话就能说完的结果,几秒后自动消失。
  • 警告提示:需要一直留在页面上的状态,比如账号未验证,或者表单提交失败的原因汇总。
  • 通知提醒框:后台任务完成、新审批到达这类用户可能正在做别的事时推来的消息。
  • 对话框:必须让用户做决定才能继续时才用,比如删除这类不可恢复的操作前做二次确认。

点赞、勾选待办这类小操作可以用乐观更新:界面立即变化,请求失败再改回来。可以恢复的删除,在轻提示里给一个撤销入口,比每次都弹确认框更顺手。

怎么跟 AI 描述

订单列表要处理四种状态:首次加载显示 5 行骨架屏;没有数据时显示空状态,文案「还没有订单」,下方放「去创建」按钮;接口失败时在列表区域显示错误原因和「重试」按钮,不要整页报错;数据正常时显示表格。

删除订单后直接从列表移除,显示轻提示「已删除」并附带「撤销」按钮,5 秒内可以恢复;5 秒后再真正调用删除接口。

本篇涉及的术语(15)