客户端与服务器端同步Evernote
原文地址:http://www.zhihu.com/question/20238731
Evernote的同步方式是 以本地为基准同步到网络 还是 以网络为基准同步到本地 的?
说明:
- 若客户端从未与服务器端同步过,则执行 Full Sync 。
- 若 fullSyncBefore(服务器端上次同步时间) > lastSyncTime(客户端上次同步时间),则执行 Full Sync 。
- 若 updateCount(服务器端上次修改时间) = lastUpdateCount(客户端上次同步时获得的updateCount),即服务器端在与当前客户端同步之后没有修改,则执行 Send Changes 。
- 其他情形,执行 Incremental Sync 。[1]
- Send Changes 将客户端修改过的笔记、标签等数据单元同步到服务器端。
- Full Sync 和 Incremental Sync 都对每一数据单元检查其在客户端与服务器端是否存在、修改时间、标识符等信息,据此判断该数据单元的同步方向,对重名项进行重命名,对冲突项进行逐字段合并,将冲突笔记移至 “Conflicting Changes” 临时笔记本。[2]
同步原理是怎么样的?是不是像Dropbox的增量同步一样?
如上文所述,Evernote同步的单位为笔记、标签等数据单元,不同于Dropbox二进制位级别的增量同步[3]。若你在客户端修改一条笔记,Evernote会将其全文上传到服务器端[4]。