应用程序
我有一个网络应用程序,目前使用AppCache来提供离线功能,因为系统的用户需要在线下创建文档。文档首先在离线状态下创建,并且当有网络连接时,用户可以点击“同步”,将该文档发送到服务器并保存为修订版。更具体地说,该应用程序不会将更改的增量(准确字段)作为修订版保存,而是完整地保存整个文档。因此,换句话说,保存了一个“快照”文档。
问题
用户可以从不同的浏览器和设备登录并处理其文件。当他们点击“同步”时,如果服务器上的文档更新,则服务器端版本将覆盖客户端的整个版本。这导致以下图像中所示的主要问题。
上述情况发生的原因是当前实现不依赖于增量(小变化),而是依赖于快照修订版。
一些问题
1)我的研究表明,我应该升级“同步”机制以表示增量(可以独立应用的小变化)。这是一个可行的方法吗?
2)每个增量是否应独立应用?
3)根据我的研究,修订增量具有数值而不是时间戳。该值应该是多少?我如何确保服务器和客户端在修订号方面达成一致?
堆栈信息
- Angular前端
- 使用IndexedDB本地保存文档(离线模式)
- 后端使用带有JSONB的Postgres数据库