gpt4 book ai didi

php - 在浏览器中编辑时锁定文件/内容。

转载 作者:可可西里 更新时间:2023-11-01 00:03:25 25 4
gpt4 key购买 nike

在我的一个项目中,允许用户编辑同一个文件。这是小组工作,小组中的最大用户数为 4。他们很少会同时编辑,但有可能发生。我正在使用显示内容的 ckeditor。如何在编辑内容时锁定内容?对于上述情况,如果一个用户打开内容进行编辑,然后从不保存并让窗口保持打开状态,将会发生什么情况。是否可以保存内容,释放锁定以供其他用户编辑?如果第一个用户回到办公 table ,他们应该看到“内容已更改,请刷新”的消息。

我正在使用 php、mysql。

谢谢

最佳答案

您需要三个部分才能完成这项工作。

  1. 您需要在数据库中添加一个字段以指示文件何时被编辑。创建一个名为“LastUsed”之类的字段,并记录打开文件进行编辑时的时间戳。当有人试图打开文件时,检查时间戳,如果时间戳是最近的(比如最近 5 分钟),则不允许第二个用户打开它。

  2. 在允许编辑文件的页面上,每隔几分钟运行一次 ajax 请求。它所需要做的就是将正在编辑的文件的时间戳更新为当前日期和时间。

  3. 然后您可以运行一个计时器,一旦它达到某个点,ajax 请求就会停止,这样数据库中的时间戳就会过期。但是,每次用户采取行动时都重置该计时器。这样只要用户在做某事,计时器就会重置,并且允许 ajax 请求继续更新数据库中的时间戳。如果用户在给定的时间内没有做某事,计时器将运行,ajax 请求停止,时间戳到期,其他人可以打开它进行编辑。您还可以使用相同的计时器来显示编辑 session 已过期等信息。

它基本上是这样工作的:

  • 当用户编辑文件时,ajax 请求不断更新“LastUsed”时间戳。

  • 只要该页面打开以编辑文件,ajax 请求就会使数据库中的时间戳保持最新。

  • 如果此人让页面保持打开状态但未执行任何操作,计时器将启动并停止 ajax 请求,这将允许其他人编辑文件。

  • 一旦用户离开页面,ajax 请求将无法再更新时间戳。这样一来,即使有人离开页面,其他人也可以编辑该文件。

  • 因此,如果“LastUsed”时间戳在最后 5 分钟内,当第二个用户尝试编辑该文件时,您就知道其他人正在编辑该文件。如果时间戳大于 5 分钟,您就知道当前没有人打开文件进行编辑,因此第二个用户可以编辑它。

关于php - 在浏览器中编辑时锁定文件/内容。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com