G4.07.5cross-device resume stores position on the account设计研究

跨设备续读需要把位置数据存储在账号侧而非本地状态

别名: 跨设备续读 · reading position sync · 账号侧位置 · cross-device resume

概念解释

长文、课程、剧集、电子书的「看到哪」是跟这个人走的,不是跟这台手机的标签页走的。跨设备续读把位置写成账号上的一份进度:对象 id、段落或时间戳、更新时间。本地的 scrollTop、sessionStorage、这台机器上的播放器状态,换一台设备就没了。同设备返回列表是会话内恢复;换设备是另一件事,存储层必须跟着换。

机制

人把未读完的对象当成一份跨情境的任务:通勤看一段,书桌上看下一段。任务的身份是账号里的那本书,不是某次浏览上下文。本地状态绑在设备、浏览器配置、有时还绑在标签页,换设备等于换了一份空白记忆。阅读器研究(电子书、视频续播)反复显示:进度若只在设备上,跨情境的任务会被拆成两次从头开始,完成率下降的是那第二次。

账号侧位置还有冲突:两台设备在无网时各自走了一段,上线后要决定谁新。用「最后写入时间」通常够用,但必须在较旧的那一端不要悄悄回跳——人以为自己刚看到第 12 章,同步却把他们拽回第 9 章,比没有续读更糟。位置的粒度要跨得动版式:像素和字体大小换端会变,段落 id、页码、媒体时间戳才是可携带的坐标。未登录时没有账号层,跨设备续读不成立,不要用「这台浏览器还记着」冒充。

怎么研究

让人在设备 A 读到已知位置,换到已登录的设备 B 打开同一对象,比较仅本地存储与账号同步。

  • 自变量:存储层、冲突策略(最后写入 / 取较新进度 / 询问)、离线分叉后再同步。
  • 因变量:B 上是否落到 A 的位置、是否发生回跳、人能否说出「我看到哪」。
  • 方法论注意点:同一 Wi-Fi 下几乎同时打开会掩盖同步延迟,要在 A 上停住几秒再开 B。版式不同的两端(手机 / 桌面)必须都测,像素同步会在桌面「对不上那段」。不要用未登录的两台设备测这条——那测的是本地,结论会错。

边界

一次性短文、一屏内读完的对象没有跨设备进度可存。隐私敏感的阅读(未登录的匿名浏览、无痕)不应写入账号。多人共用一个账号时,位置会互踩,需要的是配置文件而不是「一个账号一份进度」。本地草稿式的滚动(筛过的列表停在哪)不应默认同步到账号,那是另一类时效短的状态。

怎么落地

  • 对长内容在暂停、离开、定期心跳时把可携带坐标(段落 id、媒体时间)写入账号,不要写 scrollTop
  • 另一端打开同一对象时读账号进度并对齐;较旧端同步到较新进度时若差异大,确认后再跳,禁止默默回跳。
  • 未登录只提供本设备会话内恢复,并在登录后询问是否把本机进度合并进账号。
  • 验证:设备 A 读到可指出的一段,等同步,设备 B 打开。第一屏就是那段。把 B 读得更远再回 A,A 不得退回旧位置。关掉账号同步作为反例,B 应从开头或本机空白开始。

延伸

  • 同组G4.07.1 列表内容在离开期间变化时,恢复位置应定位到具体项而非绝对滚动量 · G4.07.2 无限滚动列表的位置恢复依赖已加载数据量,返回过深会触发重新加载 · G4.07.3 未提交的输入草稿应随导航离开保留,而非清空 · G4.07.4 位置恢复失效需说明原因,例如内容已被删除或重排
  • 相邻G4.05 断点续做 · I3.06 状态持久化 · I3.04 同步冲突
  • 站内检索cross-device resume · reading position · progress sync

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G4.07.5