同步与设备
约 4 分钟
· 更新于 2026-07-04
跨设备同步是怎么工作的
登录同一个账号后,你在一台 Mac 上复制的内容通常很快就会出现在其它设备上。这篇文章用平实的语言讲清楚这背后发生了什么,方便你在遇到疑问时判断是正常现象还是需要排查。
增量同步与游标
PasteLayer 不会每次都把你全部的历史记录重新传一遍,而是只同步「上次同步之后新增或改动的部分」,这叫增量同步。
每台设备都记着一个游标(cursor),可以理解成一个书签,标记它已经拿到了哪个位置的更新。同步时,设备带着自己的游标去问服务器:「从这个位置之后还有什么新东西?」服务器只把之后的变化返回给它,然后设备把游标往前推。
这样做的好处是:
- 传输的数据量很小,日常同步通常在一瞬间完成。
- 断网又恢复后,设备只需要补上缺的那一段,不用从头再来。
- 每台设备各自维护游标,进度互不影响。
冲突是怎么解决的
如果同一条内容在两台设备上都被改过,就会产生冲突。PasteLayer 采用「后写覆盖」(Last-Write-Wins,简称 LWW)的规则:每次改动都带一个时间戳,冲突时保留时间戳更新的那一版。
这里有一个对你有利的细节:本地还没同步出去的改动会被优先保留。也就是说,你在当前设备上刚做的、尚未上传的修改不会被服务器上较旧的版本悄悄盖掉,直到它成功同步出去为止。绝大多数日常场景下,你几乎感受不到冲突的存在。
什么时候会触发同步
同步不是固定每隔几秒跑一次,而是在下面这些时机被触发,尽量做到「该更新的时候就更新」:
- 登录账号后。
- 把 PasteLayer 切到前台使用时。
- 检测到系统剪贴板有新内容时。
- 网络从断开恢复到可用时。
- 后台定时轮询到点时。
- 你手动点击同步时。
- 设备从睡眠中唤醒时。
- 你改动了同步相关设置时。
多个时机可能在短时间内接连发生,客户端会做合并,避免重复地做无意义的同步。
图片走的是独立通道
文字内容通常很小,可以随增量同步一起传输。图片则不同,它体积更大、耗时更长,所以走一条独立的通道,和文字同步分开进行,互不拖累。
每张图片在传输过程中有自己的状态(blob 状态机),上传和下载是两个分离的阶段:
- 一台设备先把图片上传,标记为已就绪。
- 其它设备在需要时再去把它下载下来。
这种「先占位、按需拉取」的设计意味着:文字条目往往会先到,对应的图片可能稍晚一点才在另一台设备上显示完整。看到图片短暂显示为加载中,通常就是它还在独立通道里传输,稍等即可。