如果这个问题之前已经被问过,请原谅。我相信这是一个经典问题,但是我还是要问一下,因为我找不到解决方案。
- 我有一个用于记事应用的mongo/mongoose/node堆栈API。
- 应用程序的用户可以在不同的设备或浏览器标签中打开它,有时会覆盖自己的笔记。
以下是一个时间线示例,描述了单个使用多种媒介遇到问题的用户:
- 用户在手机上打开应用程序(离线)
- 随后,用户在浏览器中打开应用程序并编辑特定笔记。
- 用户返回到手机上的应用程序并编辑同一笔记。现在,手机应用程序覆盖了#2中所做的编辑,因为手机处于“不同步”状态。
存在两个主要问题:
1. 应用程序没有启动同步。它保持不同步,除非用户手动点击刷新。
2. 合并两个笔记很困难,因为它不像最新的笔记是权威的,而是需要优雅地将两者合并在一起(类似于GitHub diff)
有没有处理此类问题的已知策略?我的初步研究指向类似于jsdiff的东西,它可以突出显示差异,但它不考虑与mongoose的同步和修订决议。
总之,我有多个笔记,需要将它们合并。它们可能会有所不同。