当前位置:  开发笔记 > 前端 > 正文

我该怎么做才能防止在wiki风格的网站上发生写写冲突?

如何解决《我该怎么做才能防止在wiki风格的网站上发生写写冲突?》经验,为你挑选了2个好方法。

在wiki风格的网站上,我还能做些什么来防止或缓解写 - 写冲突,同时仍允许网站快速运行并保持网站易于使用?

我预见到的问题是:

    用户A开始编辑文件

    用户B开始编辑文件

    用户A完成编辑文件

    用户B完成编辑文件,意外覆盖用户A的所有编辑

以下是我提出的一些方法:

有一些退房/登记/锁定系统(虽然我不知道如何防止人们保持文件签出"太长",我不希望用户因不被允许而感到沮丧进行编辑)

有某种差异系统,显示当用户提交更改并允许某种合并时所做的其他更改(但我担心这很难创建并会使网站"太难"使用)

用户在进行更改会通知并发编辑(某种AJAX?)

还有其他方法吗?任何实现这一点的网站的例子?



1> stesch..:

记住上次更改的版本号(或ID).然后在写入之前阅读该条目并比较该版本是否仍然相同.

如果发生冲突,请通知正在尝试编写同时更改的条目的用户.用差异支持他.

大多数维基都是这样做的.链接到MediaWiki,Usemod,等等.



2> Phil H..:

三向合并:首先要指出的是,大多数并发编辑,特别是在较长文档上,都是针对文本的不同部分.因此,通过注意用户A和B获得的修订,我们可以进行三向合并,如Guiffy Software的Bill Ritcher所详述.三向合并可以识别从原始文件进行编辑的位置,除非它们发生冲突,否则它可以将两个编辑内容静默地合并到一篇新文章中.理想情况下,此时执行合并并向用户B显示新文档,以便她可以选择进一步修改它.

碰撞解决 方案:当两个编辑器编辑同一部分时,这将为您提供方案.在这种情况下,合并其他所有内容并将三个版本的文本提供给用户B - 也就是说,包括原始文本 - 用户A的文本框中的版本或用户B的版本.该选择取决于您是否认为默认值应接受最新(用户只需单击"保存"以保留其版本)或强制编辑器进行两次编辑以获取其更改(他们必须将其更改重新应用于编辑器A的版本的部分).

使用这样的三向合并可以避免锁定,这很难在网络上很好地处理(你让他们有多长时间锁定?),以及加重'你可能想再看一次'的情况,这只是适用于论坛风格的回复.它还保留了网络的后响应风格.

如果你想稍微改进它,可以在编辑它时动态3路将用户A的版本合并到用户B的版本中,并通知它们.现在这将令人印象深刻.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有