客户端与服务器端同步Evernote

原文地址:http://www.zhihu.com/question/20238731

 

Evernote的同步方式是 以本地为基准同步到网络 还是 以网络为基准同步到本地 的?

  1. 若客户端从未与服务器端同步过,则执行 Full Sync 。
  2. 若 fullSyncBefore(服务器端上次同步时间) > lastSyncTime(客户端上次同步时间),则执行 Full Sync 。
  3. 若 updateCount(服务器端上次修改时间) = lastUpdateCount(客户端上次同步时获得的updateCount),即服务器端在与当前客户端同步之后没有修改,则执行 Send Changes 。
  4. 其他情形,执行 Incremental Sync 。[1]
说明:
  1. Send Changes 将客户端修改过的笔记、标签等数据单元同步到服务器端。
  2. Full Sync 和 Incremental Sync 都对每一数据单元检查其在客户端与服务器端是否存在、修改时间、标识符等信息,据此判断该数据单元的同步方向,对重名项进行重命名,对冲突项进行逐字段合并,将冲突笔记移至 “Conflicting Changes” 临时笔记本。[2]

同步原理是怎么样的?是不是像Dropbox的增量同步一样?

如上文所述,Evernote同步的单位为笔记、标签等数据单元,不同于Dropbox二进制位级别的增量同步[3]。若你在客户端修改一条笔记,Evernote会将其全文上传到服务器端[4]。
posted @ 2015-03-26 11:29  三台  阅读(411)  评论(0编辑  收藏  举报