数据看板不要只写“实时”。每张卡片至少显示数据截至时间,遇到延迟再说明影响范围;刷新中和同步失败分别给出状态与下一步。以每日订单量看板为例,顶部写“数据截至 10:30”,退款卡片写“数据截至 10:15,同步延迟”,并提供查看原因或重试。利用界面布局和组件设计把四种状态放在同一文件,评审时更容易发现信息缺口。

数据时间和页面时间分开
“页面刚刷新”不等于“数据刚更新”。卡片同时展示数据截至时间和最近刷新检查时间,跨时区时使用完整日期与时区。更新时间较久时给出相对时间和绝对时间,避免“昨天”在午夜后失效。
| 状态 | 应该告诉用户 | 允许的动作 |
|---|---|---|
| 正常 | 数据截至时间、更新频率 | 查看明细、手动刷新 |
| 延迟 | 已延迟多久、影响哪些指标 | 查看原因、稍后重试 |
| 刷新中 | 请求已发出,结果未返回 | 取消或等待 |
| 失败 | 未获得新数据,保留旧时间 | 重试、查看旧数据 |
设想运营在 10:40 打开订单看板:订单数据已到 10:30,退款数据只到 10:15。页面顶部不能统一写“10:40 已更新”,因为它只是打开时间。卡片分别标出截至时间;若总览指标需要同时使用订单和退款数据,应说明组合口径或使用共同时间窗口。
页面更新时间也要与筛选条件绑定。用户从“今天”切换到“昨天”时,“截至 10:30”不再是同一含义;历史完整日应说明统计日期和最后修订时间。午夜切日后,昨日和今日的数据量不可直接作为趋势对比而不提示统计时长。
刷新反馈不能覆盖旧结果
刷新开始后保留上一份数据和时间,降低空白闪烁;在卡片上明确“正在更新”。成功后同时更新数值与截至时间,失败时恢复按钮并说明旧数据仍在。自动刷新与手动刷新使用同一状态语言。
刷新失败时保留旧值,并明确“未获取到新数据,仍显示截至 10:30 的结果”。不要把所有数值替换成 0:零订单是一个业务结论,取不到订单是另一个技术状态。首次打开还没有任何旧数据时,则显示空的加载或错误区域,两者文案不同。
手动刷新不能打断用户正在阅读的明细。保留筛选、滚动位置和展开行;结果回来后用轻量通知说明哪些区域已更新。短时间内连续点击可合并为一次进行中的请求,按钮显示刷新中;页面仍应能查看旧结果,不能全屏遮住。
可参考W3C 的状态消息说明,让“已更新”被辅助技术感知,同时避免每个卡片每秒都播报。刷新是读者的当前任务时反馈完整,后台周期更新则合并提示。
异常状态要支持判断
延迟影响关键指标时,卡片给出“暂不用于结算”之类的业务提示,但只在规则已确认时使用。不要把网络错误写成数据异常,也不要用红色替代原因。明细页保留原始时间和更新时间,方便追溯。
“延迟”需要一个明确标准。若订单源按每 5 分钟更新,10:30 的批次在 10:40 仍未更新,可以标为延迟;每天一次的结算指标不能套用这条阈值。实际阈值应按各个数据源的更新约定配置,不能所有卡片共用一个数字。
延迟也不一定能准确预计恢复时间。已知是排队积压时可给出估计区间;未知时显示“暂未取得新批次,正在检查”,附最近一次成功时间。不要用“即将恢复”这种无法兑现的文字,让运营一直刷新等待。
如果一个指标异常,其他指标仍可查看;将范围限制在受影响卡片,顶部摘要列出受影响的数据源即可。整页失效、单卡片延迟和筛选无结果应有不同视觉,读者才能判断是换条件、等待还是联系负责人。
把正常、单卡片延迟、整页失败和刷新成功画成 Pixso 中相邻的四种状态,统一使用订单 10:30、退款 10:15 这组时间。运营能准确读出每个数字对应的范围,研发也能分清该更新数值、时间还是提示。