H1.08.1autosave for long forms设计研究

长表单需要自动保存

别名: 草稿自动保存 · form autosave · draft save · 未提交保留

概念解释

长表单的填写跨过数分钟到数天,期间会切应用、来电、刷新、进程被杀。自动保存把尚未提交的值按时间或按变更写入可恢复的草稿,使人在回来时不必从第一项重来。短登录框不需要这层;申请、报税、病历、多步结账需要。这条只谈长表要不要把未提交值留下来,不谈保存那一瞬间要不要给一句「已保存」,也不谈密码和证件号该不该进草稿。崩溃恢复里「要不要让人确认再覆盖」是另一族的问题。

机制

人的填写会话比页面会话长。浏览器把一次刷新当成新文档,操作系统把一次内存回收当成进程结束,表单若只活在内存里,工作在边界上归零。自动保存把值从「这次页面」挪到「这次任务」。第二层是中断不可预约:来电、验证码短信、查邮箱拿证件号,都是任务内的合法离开。没有草稿,离开的成本等于已填时长,人会在需要离开的那一项放弃整张表。保存的粒度要能覆盖「写完一项去查资料」这种自然切口,而不是只在点「下一步」时写盘——下一步常常到不了。本地草稿顶得住刷新,顶不住换设备;服务端草稿顶得住换设备,前提是人还登录着。长表两边都需要,只做一侧会在另一侧的中断上失败。

怎么研究

让人填一张至少八分钟的表,中途插入强制离开(刷新、切走两分钟、杀进程),比较无草稿、仅本地、仅服务端。

自变量:是否自动写草稿、触发(定时 / 失焦 / 下一步)、草稿存在本地还是账号下。 因变量:中断后恢复的字段比例、因中断导致的放弃、恢复后出现过期值的次数。

实验室里中断是安排好的,真实中断更脏(系统更新、登录过期)。要把「登录过期后草稿还在不在」单独测。不要用短任务的完成率证明不需要自动保存。

边界

两三个字段、总时长低于一分钟的表,自动保存的工程成本和「草稿残留」的隐私成本高于收益。公共电脑上的本地草稿是泄露,应仅用会话级内存或明确的「这是公共设备」开关。只读回看、已经提交成功的表不应再写新草稿,以免把已提交结果冲成旧草稿。协作表单多人同时编辑时,自动保存会变成冲突源,需要另套合并,而不是静默覆盖。

怎么落地

  • 预计填写超过几分钟或跨步的表,在字段失焦或短间隔定时把未提交值写入草稿;不要等到「下一步」或「保存草稿」按钮。
  • 同时做本地与登录后的服务端两份,刷新用本地,换设备用服务端;未登录时至少保住本地。
  • 再次打开同一任务时恢复草稿,而不是丢弃后给一张空表。
  • 验证:填到一半刷新,值还在。杀进程再打开,值还在。换一台已登录的设备打开同一申请,值还在。把保存只绑在「下一步」上作为反例,在第一步中途刷新,确认那种实现会丢数据。

延伸

  • 同组H1.08.2 保存状态需可见 · H1.08.3 敏感字段不应进入草稿
  • 相邻I4.02 自动保存频率 · H3.09 崩溃与断网恢复 · I3.06 状态持久化
  • 站内检索autosave · form draft · crash recovery

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H1.08.1