C3.19.3No commit during disambiguation设计研究

判别期内不得提交不可逆动作

别名: 判别期 · 延迟提交 · speculative gesture

概念解释

从按下到系统能唯一认定手势的这一段叫判别期(disambiguation window)。期内可以给预览——列表跟着走、侧滑露出操作底色、长按进度环转动——但不得提交不可逆后果:归档邮件、发送、购买、删除、跨页导航。预览可撤回,提交不能。判别期结束、手势成立之后,才允许把状态写进模型。

机制

识别器在判别期持有的是假设,不是事实。若假设被后来的特征推翻(本以为是侧滑归档,其实是纵向滚动),已经发出的网络请求、已经弹出的新页面、已经播完的“已删除”就变成错账。把效果分成两层:表现层可以跟手,模型层等到 recognized 或等价的成功回调。邮件客户端把归档做成跟手的色带、松手过阈值才真正移走,就是这个分层;反过来,手指刚横移就发出归档 API,就是把假设当成了事实。

怎么研究

在冲突手势上注入“先横后纵”或“先停后移”的轨迹,统计有多少不可逆副作用在轨迹改写前已经发生。因变量:过早提交次数、需要撤销的比例、撤销是否来得及。自变量:提交绑定在哪一个生命周期(began / changed / ended)。不要只问用户“手感顺不顺”——顺的预览也可能已经写库。

边界

纯表现的滚动本身常被当成可逆的视图变换,不落模型,判别期内跟手是合理的。密码提交、支付、权限授予这类动作没有安全的“预览态”,判别期应直接拒绝它们作为手势后果。若系统在应用看到 ended 之前就切走了页面(返回手势),应用层的延迟提交也救不了。短判别期不等于可以提前写模型。

怎么落地

  • 把手势回调拆成预览与提交;删除、发送、购买只挂在成功认定且松手(或明确越过提交阈值)之后。
  • 预览必须能在手势失败或改判时瞬间复原,不留残片。
  • 用“先横滑再改成竖滚”的脚本手势打桩:断言归档、导航、写入在改判前次数为零。

延伸

  • 同组C3.19.1 同一起始动作被多个手势竞争 · C3.19.2 按方向、速度、指数、时长分流的判别顺序 · C3.19.4 嵌套滚动容器的触点归属规则
  • 相邻C3.33 手势的可撤销 · C3.17 侧滑操作项
  • 站内检索disambiguation window · speculative update · gesture commit

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C3.19.3