为了账号安全,请及时绑定邮箱和手机立即绑定

关于锁定文章 不让其他人编辑 怎么处理

关于锁定文章 不让其他人编辑 怎么处理

绝地无双 2018-12-06 23:12:45
谁做过 这类的项目 一个文章 一个用户编辑了 另一个用户就不让编辑了   我现在有一种办法 就是给加个状态 当一个用户编辑 让state=1 编辑完成修改成0   state=1的时候别人就编辑不成 为0的时候就可以进行编辑但是这样子 假如 停电啊 什么的断网 则 需要管理员手动去改回为0另一种办法就是 application 但是这个有没有过期时间呢 我正在google中...有遇到的朋友 讨论下 谢谢了饿
查看完整描述

12 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

我感觉你这在把简单的问题复杂化,

 

如果有两个人先后编辑同一文章,管它们客户端的状态呢,谁先提交的算谁编辑的。

 

当然,照顾到后提交者的情绪,可以这样做:

 

每篇文章记录编辑次数count,网页提交Form中放一个隐藏的input标签,记录用户刷新时的count,提交成功后服务器里count+1。

这样,当有多人提交的时候,你就知道他编辑的是否为最新版本,如不是,则提交驳回,并提示人家有最新编辑的版本。同时还可以缓存下人家要提交的东西,避免丢失。

查看完整回答
反对 回复 2019-01-21
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

这是一个并发处理的问题,建议采用乐观锁的方式。

查看完整回答
反对 回复 2019-01-21
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你的意思 让所有的人都可以编辑 提交的时候看 数据库中的是不是原来的 如果是就让你更新,如果不是就提示你已经有了最新版本的 但是我想点击标题的时候 就给他提示说有人正在编辑
查看完整回答
反对 回复 2019-01-21
?
墨色风雨

TA贡献1853条经验 获得超6个赞

“点击标题的时候 就给他提示说有人正在编辑“
如果点击标题时没有被编辑,点击后马上被人编辑了怎么办?
查看完整回答
反对 回复 2019-01-21
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

点击标题直接进入编辑页面的啊 点击标题的那一时刻就在数据库中改状态或者application呀然后进去
谁先点击就让谁编辑 在于点的那一时刻
查看完整回答
反对 回复 2019-01-21
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

这是悲观处理方式
查看完整回答
反对 回复 2019-01-21
?
烙印99

TA贡献1829条经验 获得超13个赞

哪种比较好一点呢 我觉得乐观的麻烦呀
查看完整回答
反对 回复 2019-01-21
?
弑天下

TA贡献1818条经验 获得超8个赞

你好,你这里对这个文章加一个状态和当前编辑者

state=1表示非编辑用户不可编辑

state=0表示任意用户可编辑

每次某个用户XXX编辑的时候为这篇文章修改状态state=1,且当前编辑用户为XXX

修改完成之后设置state=0,切将当前编辑用户设置为空。

如果遇到断电的情况下,那么用户XXX重新登录到系统中,这个state=1且当前编辑用户为XXX的文章对于用户XXX为可编辑,其他用户不可编辑。

查看完整回答
反对 回复 2019-01-21
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

悲观并发不好控制,就像你说的停电、断网等很难处理。
乐观并发就没有这种情况。
查看完整回答
反对 回复 2019-01-21
?
慕斯王

TA贡献1864条经验 获得超2个赞

呵呵,你可以在用户非正常状态退出的时候由服务器端清理掉用户编辑的那篇文章的状态。
比如在断电的情况下是可以由服务端自动注销清理用户信息的。

ASP中有个Global.asax里面有个

void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。

}
查看完整回答
反对 回复 2019-01-21
  • 12 回答
  • 0 关注
  • 572 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信