谁做过 这类的项目 一个文章 一个用户编辑了 另一个用户就不让编辑了 我现在有一种办法 就是给加个状态 当一个用户编辑 让state=1 编辑完成修改成0 state=1的时候别人就编辑不成 为0的时候就可以进行编辑但是这样子 假如 停电啊 什么的断网 则 需要管理员手动去改回为0另一种办法就是 application 但是这个有没有过期时间呢 我正在google中...有遇到的朋友 讨论下 谢谢了饿
12 回答
倚天杖
TA贡献1828条经验 获得超3个赞
我感觉你这在把简单的问题复杂化,
如果有两个人先后编辑同一文章,管它们客户端的状态呢,谁先提交的算谁编辑的。
当然,照顾到后提交者的情绪,可以这样做:
每篇文章记录编辑次数count,网页提交Form中放一个隐藏的input标签,记录用户刷新时的count,提交成功后服务器里count+1。
这样,当有多人提交的时候,你就知道他编辑的是否为最新版本,如不是,则提交驳回,并提示人家有最新编辑的版本。同时还可以缓存下人家要提交的东西,避免丢失。
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
你的意思 让所有的人都可以编辑 提交的时候看 数据库中的是不是原来的 如果是就让你更新,如果不是就提示你已经有了最新版本的 但是我想点击标题的时候 就给他提示说有人正在编辑
弑天下
TA贡献1818条经验 获得超8个赞
你好,你这里对这个文章加一个状态和当前编辑者
state=1表示非编辑用户不可编辑
state=0表示任意用户可编辑
每次某个用户XXX编辑的时候为这篇文章修改状态state=1,且当前编辑用户为XXX
修改完成之后设置state=0,切将当前编辑用户设置为空。
如果遇到断电的情况下,那么用户XXX重新登录到系统中,这个state=1且当前编辑用户为XXX的文章对于用户XXX为可编辑,其他用户不可编辑。
慕斯王
TA贡献1864条经验 获得超2个赞
呵呵,你可以在用户非正常状态退出的时候由服务器端清理掉用户编辑的那篇文章的状态。
比如在断电的情况下是可以由服务端自动注销清理用户信息的。
ASP中有个Global.asax里面有个
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
}
比如在断电的情况下是可以由服务端自动注销清理用户信息的。
ASP中有个Global.asax里面有个
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
}
- 12 回答
- 0 关注
- 572 浏览
添加回答
举报
0/150
提交
取消