共享数据之间的冲突


Collision between shared data

这是共享数据的常见问题。

因为我正在构建一个系统,允许用户将他们的邮件列表共享给他们的同事。

我怀疑用户a打开页面时出现了问题,userB打开同一页面并编辑数据,之后用户A编辑数据并提交,用户B的更改将被取消。

当我使用PHP时,他们有什么方法可以防止这种错误吗???谢谢。|

php/jquery??中是否提供了任何编码示例???非常感谢

将版本记录为日志,这样用户A会将conent ver.123更新为ver.124,用户B也会尝试以自己的方式更新ver.123,但服务器上已经有ver.124了,所以您会向用户B显示消息,内容最近被另一个用户修改了。

例如,SVN中使用了这一原理。

有一些解决方案。最简单的方法是在数据库上设置一个"锁定"字段,当有人查看页面时,该字段设置为true,并且在页面锁定时拒绝其他人进入页面。这不是一个好主意,因为当有人离开页面时,很难捕捉到,所以页面可能永远处于锁定状态。

您可以通过使用一个小的AJAX调用来解决这个问题,该调用每隔10秒左右向服务器发送一条消息来锁定页面,并且页面锁定有30秒的时间限制。

也许最好的方法(尽管这取决于系统)是使用AJAX在页面的组件被另一个用户编辑时动态地重新加载它们(并在编辑时在它们旁边放一条消息),如果两个用户同时编辑同一个字段,则警告两个用户。