阻拦协同编辑——时间戳

只要是团队合作,或是可多人合作操作的产品,就会遇到一个问题——协同编辑的数据变更。

具体情景:

用户A、B 先后打开了同一条数据,并分别进行编辑,且B先于A保存数据,整体流程 如下图:

如果此时,服务端允许A保存了,就会导致A保存的数据,会覆盖B保存的数据

这种问题,最优解决方案,当然是支持实时协作,例如 用websocket来进行长连接,实时更新数据。

但是,有些软件搭载平台,不支持WebSocket,例如挂载到IIS7上面的运行的软件,或者无法进行长连接的程序,或者是不考虑实现同时编辑功能,那此时就只留下一个问题待解决——

阻拦协同编辑的最后变更者

要想知道谁是最后变更者,或者哪条数据是最新的一个版本,就需要一个东西——时间戳。

整体机制:

1.数据带有时间戳,用户请求数据时,用时间戳进行标记 此用户的此次数据请求。

2.用户请求保存时,将之前的时间戳标记 和 数据最新的时间戳进行比对,一致则进行数据保存,并更新时间戳;不一致,则抛出需要手动变更。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章