极短加载不应显示指示器
别名: 延迟出现 · spinner delay · 加载闪一下
概念解释
加载指示器(loading indicator)用转圈、点脉冲或「加载中」告诉用户系统还在工作。极短加载不应显示,指请求若在人刚把动作登记完的窗口内就结束,指示器根本不要出场。闪一下的转圈不是诚实,它把一次已经完成的动作打扮成一次等待,让界面自己制造停顿。这一条管的是出场门槛:什么时候开始显示。最短显示多久、要不要挡住整页,是后面两条。
机制
人对自己刚发出的动作,有一段仍觉得「还在发生」的时间。这段里屏幕不变,仍会被算作同一动作的一部分;一出转圈,同一段时间就被重新编码成「我在等系统」。编码一旦切换,即使转圈立刻消失,也留下一次无意义的状态变化——闪烁。闪烁抢注意,还暗示系统比实际更忙。阈值不是审美趣味:直接操纵和按键回馈可以短到几乎为零,跨网络取数则往往需要过了这段即时窗口才承认在等。指示器的工作是标记已经超出即时窗口的等待;窗口内的等待不需要被标记,标记了反而打断因果感。
怎么研究
在同一操作后插入可控延迟,比较「一有请求就转」和「过了门槛再转」。
自变量:延迟长度、操作类型(本地筛选 / 网络保存)、指示器是否打断正在看的内容。 因变量:是否报告「刚才卡了一下」、重复点击率、主观耗时、是否觉得系统不稳定。
关键对照是延迟其实很短、但指示器闪过的条件:客观时间相同,有闪烁的那组会把任务记得更慢、更不可靠。不要用「你有没有看见转圈」当成功指标,看见正是这种条件下的失败。
边界
无任何其他反馈的动作(点了按钮,按钮外观也不变)即使很快,也可能需要别的即时确认,那不是指示器的事,是按钮状态的事。用户明确在等一个已知会慢的过程(导出、支付),门槛可以更低,因为预期已经是等待。弱网下「通常很快」会变成「经常很慢」,固定门槛会让指示器经常晚出场,用户在门槛之内就开始重复点;此时应配合防重入,而不是把门槛降到零。动画帧本身也有成本,为几十毫秒的请求启动一次转圈,性能上也不划算。
怎么落地
- 给指示器设出场延迟,短于该延迟结束的请求保持安静,只保留操作点上的即时态(按下、禁用)。
- 按操作类型分开门槛:本地过滤可以更长才承认在等,跨海请求可以更短。
- 不要用「每次请求都转」当默认;默认应是「证明这次真的在等」。
- 验证:在快网下连续点常见动作,录屏看有没有单帧转圈。有,就把出场延迟调到刚好盖住这些快请求。