现在遇到的问题是,用户老是重复打开页面去编辑,或者多台电脑,或者多个浏览器里编辑同一个页面,做了自动保存功能、自动备份功能、自动本地缓存功能。
但是到用户手里,就各种数据丢失,我也知道多开窗口,每个窗口的数据会相互覆盖,但是怎么才能精准确定另一个窗口正在编辑呢?
是不是只有长连接一种方法能精准判断某个页面是否还在线?
现在遇到的问题是,用户老是重复打开页面去编辑,或者多台电脑,或者多个浏览器里编辑同一个页面,做了自动保存功能、自动备份功能、自动本地缓存功能。
但是到用户手里,就各种数据丢失,我也知道多开窗口,每个窗口的数据会相互覆盖,但是怎么才能精准确定另一个窗口正在编辑呢?
是不是只有长连接一种方法能精准判断某个页面是否还在线?
10 回答11.1k 阅读
7 回答5.3k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
你解决问题的关注点不太正确
要解决的是客户多窗口编辑保存,数据丢失、混乱的问题。知道客户哪个编辑窗口在线并不能解决这个。
解决思路:
每次数据保存,生成一个唯一的版本token(比如uuid)
用户打开编辑页时,把版本token带下去
客户提交时,比对数据当前版本token
如果token一致,说明客户提交前没有其它人提交过,可以保存。
如果token不一致,则说明中间有其他人提交过,提示用户请在最新版本上做修改,重新加载编辑页。
想做的更友好的话,考虑内容比对,显示差异,让用户自己合并后提交。