E6.15.4update notice timing设计
更新提示的时机不应打断用户正在进行的操作
别名: 更新时机 · don't interrupt · 更新弹窗
概念解释
更新提示在「正在输入、正在播放、正在拖拽、正在支付」这些进行中的操作上弹出来,等于用一个明天才需要面对的版本问题覆盖当前这几秒的任务。时机要选在会话的接缝:启动后的空闲、文档保存之后、回到前台且没有未完成输入时。强制更新也不能在支付的最后一步突然变成门;门应出现在下一次冷启动或这次事务结束之后。提示的强度决定能不能绕过,时机决定它出现在哪一拍。两件事独立。
机制
进行中的操作占用运动记忆和未提交的内容。模态更新提示一来,焦点被夺走,键入进了对话框,拖拽被取消,播放被暂停。即使用户立刻关掉,因果已经断了:刚才那一下没完成,也不知道点到了哪里。更新很少紧急到必须插入当前动作内部——真正紧急的强制应挡在动作开始之前或结束之后,而不是中间。接缝处的注意是空的,提示可以被当成下一件小事来处理;动作内部的注意是满的,同样的提示会被当成袭击。后台已经下完包,只差一次重启,也仍要等接缝,因为重启比提示更伤进行中的状态。
边界
正在进行的操作若就是「打开一个已知不安全的旧版去改生产数据」,等待接缝会扩大危险窗口,可以在保存点插入强制,但仍应避开键入过程中的每一击。全屏演示、考试、导航类应用有自己的「请勿打扰」,更新提示必须加入这些模式,否则接缝规则会被演示中的一次切到后台再回来打破。长时间从不进入接缝的会话(开着文档工作一整天)不能让可选更新永远不出;应在一次保存或一次空闲超时后出现,而不是放弃提示。计时器到点就弹,不管当前焦点,是最常见的坏时机实现。
怎么落地
- 把更新提示排进接缝队列:冷启动无未保存内容、保存成功、从后台回到无焦点输入。进行中则等待。
- 强制更新若必须尽快,选最近一次保存之后或下一次启动,不要插进输入事件中间。
- 尊重系统或产品的请勿打扰与全屏状态。
- 验证:在输入一段话、拖拽一个对象、播放一段媒体时触发更新检查。若这三件事被对话框切断,时机就还在动作内部。