跨设备续读需要把位置数据存储在账号侧而非本地状态
别名: 跨设备续读 · 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 应从开头或本机空白开始。