同一个页面同时只允许一个人打开使用???

gzbhappy 2013-03-11 05:44:22
现在正在做一个在文档系统,用户上传的文档,可以在线编辑,编辑是实现了,但是现在是多个用户可以同时打开编辑,谁先保存,谁先编辑的内容就先记录并保存下来, 这样会出现错误
现在我想 在用户打开编辑文档页面时做出相关提示,如果有人进入编辑页面时,就提示 此页面已经正在编辑不允许再次进入 请等待,如果此时没有人进入 可以正常进入文档编辑页面进行常规编辑

谢谢
...全文
335 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Donthan 2013-03-12
  • 打赏
  • 举报
回复
我觉得你还是创建个临时带时间戳的表比较靠谱。 用session的话,一方面会超时,另一方面非正常退出时session还在。
万婷 2013-03-11
  • 打赏
  • 举报
回复
2L那个差不多,然后你说的是强制关闭浏览器会导致锁定状态不准确吧? 你可以将文档锁定存储给session,定一个比较短的超时时间,如果用户编辑文档的话,会刷新session的时间 这样如果用户强制关闭浏览器,一会之后sesion就超时了,在超时那里处理下数据库的锁定状态,如果正常关闭则直接让session超时或者直接去改数据库状态
gxingmin 2013-03-11
  • 打赏
  • 举报
回复
提供的都是思路,没有定死不定死一说,也没有哪个思路是绝对的
winner2050 2013-03-11
  • 打赏
  • 举报
回复
以后不会就别把话题定死。 这个问题用个版本号就能解决。 数据库里面用过时间戳或者直接就是时间来作版本号。 保存以后更新版本号,别人打开着的就已经是过时版本了,保存的时候提示一下就行了。
gzbhappy 2013-03-11
  • 打赏
  • 举报
回复
楼上的能不能给点代码提示,谢谢!
gxingmin 2013-03-11
  • 打赏
  • 举报
回复
那你在这个页面用ajax定时向服务器提交一个信息,缓存里记录最后提交的时间 下次用户打开此页面时,判断最后提交的时间跟现在时间比较,相差超过某个时间就认为上次那个用户已经关闭了该页面
gzbhappy 2013-03-11
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
用户打开这个页面时,把用户ip和用户id记录在缓存里,退出时清除这个缓存 每次打开这个页面前判断这个缓存有没有数据(即有没有人在编辑这个页面),有则提示用户,没有则打开这个页面并记录缓存
如果用户关闭浏览器右上传的关闭按钮楼上的就不起作用了
gxingmin 2013-03-11
  • 打赏
  • 举报
回复
用户打开这个页面时,把用户ip和用户id记录在缓存里,退出时清除这个缓存 每次打开这个页面前判断这个缓存有没有数据(即有没有人在编辑这个页面),有则提示用户,没有则打开这个页面并记录缓存

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧