Javascript 过了一分钟就扔掉用户?
我想做一个“特殊”类型的留言簿,一次只有一个随机的客人可以写一些东西。当用户进入留言簿时,它会被其他用户锁定-其他用户不能写入,但他们可以读取以前的所有条目 “声称”留言簿的用户有一分钟的时间写评论。当时间流逝或他发表评论时,他会自动被锁定在页面之外,留言簿将可供下一个用户使用。当你试图写信给留言簿时,无论你是否发表了评论,你都无法在留言簿上写下半个小时的内容(但你仍然可以像平常一样查看每个条目)Javascript 过了一分钟就扔掉用户?,javascript,php,mysql,sql,Javascript,Php,Mysql,Sql,我想做一个“特殊”类型的留言簿,一次只有一个随机的客人可以写一些东西。当用户进入留言簿时,它会被其他用户锁定-其他用户不能写入,但他们可以读取以前的所有条目 “声称”留言簿的用户有一分钟的时间写评论。当时间流逝或他发表评论时,他会自动被锁定在页面之外,留言簿将可供下一个用户使用。当你试图写信给留言簿时,无论你是否发表了评论,你都无法在留言簿上写下半个小时的内容(但你仍然可以像平常一样查看每个条目) 我怎样才能做到这一点?我听说我必须使用像cronjobs这样的东西,但这真的是我需要的吗?如果有人
我怎样才能做到这一点?我听说我必须使用像cronjobs这样的东西,但这真的是我需要的吗?如果有人能给我一些建议(不要期望完整的解决方案),那就太好了。首先,我建议用Java做这项工作,假设你有一个应用程序连接到的中央服务器 如果没有,您可以在数据库中进行管理。你要做的是锁上桌子。是关于锁定表的信息 解锁表也很重要 一种方法是在线程中等待60秒,然后执行解锁。另一种可能性是让数据库通过
我会注意到,您在使用此类应用程序时要非常小心。如果任何组件出现故障或表现不符合预期,则表上的锁可能不会被释放。这就是我建议在服务器端执行此工作的原因之一。此外,您似乎只有一个元素正在被更改;将关系数据库的机制用于单个元素通常是过分的。因此,让我总结一下
- 您希望让用户能够在留言簿中写入内容
- 此人只有1分钟的时间发送此消息
- 然后用户将被重定向到某个地方
- 下一个人就可以写东西了
这就是您想要的吗?您需要在体系结构中定义一些东西来实现这一点。最终,这取决于网站的交互流程 建议的体系结构-服务器端语言(建议Java)、WebSocket、数据库和计划任务(Cron、计划任务等)
setTimeout
,在1分钟后,它将删除服务器锁,并提醒所有其他客户端锁已解除(启用他们的评论框)这是一个棘手的实现,会有很多问题,因为如果服务器上仍然启用了锁,但没有客户端拥有锁,则可能会失去与服务器的通信以释放锁。我喜欢这样,这听起来像是一个非常简单的实现。但这似乎有点太简单了……如果我通过AJAX进行检查,难道没有人会故意阻止留言簿解锁吗?如果用户刚离开页面怎么办?哈哈,这就是为什么当一个新用户试图发布一些东西时,你会将时间+1分钟与当前时间进行比较。有了这个,一个新人可以很容易地解锁一个被锁定的留言簿,锁定的问题也就解决了。很抱歉我的回复太晚了——这似乎就是我想要的,也是我能(可能)真正意识到的答案。谢谢我试试看。