阻攔協同編輯——時間戳

只要是團隊合作,或是可多人合作操作的產品,就會遇到一個問題——協同編輯的數據變更。

具體情景:

用戶A、B 先後打開了同一條數據,並分別進行編輯,且B先於A保存數據,整體流程 如下圖:

如果此時,服務端允許A保存了,就會導致A保存的數據,會覆蓋B保存的數據

這種問題,最優解決方案,當然是支持實時協作,例如 用websocket來進行長連接,實時更新數據。

但是,有些軟件搭載平臺,不支持WebSocket,例如掛載到IIS7上面的運行的軟件,或者無法進行長連接的程序,或者是不考慮實現同時編輯功能,那此時就只留下一個問題待解決——

阻攔協同編輯的最後變更者

要想知道誰是最後變更者,或者哪條數據是最新的一個版本,就需要一個東西——時間戳。

整體機制:

1.數據帶有時間戳,用戶請求數據時,用時間戳進行標記 此用戶的此次數據請求。

2.用戶請求保存時,將之前的時間戳標記 和 數據最新的時間戳進行比對,一致則進行數據保存,並更新時間戳;不一致,則拋出需要手動變更。

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