在网页上仅为一个用户启用了按钮

时间:2018-01-18 12:16:45

标签: javascript php html

我正在开发一个网站,该网站可以控制按下一个按钮时旋转的某些设备。但是,我一次只希望一个用户能够按下按钮。

也就是说,当用户进入页面时,检查它是否是"第一个"或者只有那里的用户。如果他是,他可以自由使用按钮。如果他不是,则该按钮显示为已禁用。

实施此操作的最佳方法是什么?我使用的是经典的html + js + php设计。

谢谢。

2 个答案:

答案 0 :(得分:0)

这是一个设计问题,但在此之前,您应该已经尝试了一些东西并发布了这些内容。

您应该使用锁定系统:

使用php创建一个端点,用Ajax调用,检查全局共享的变量(如果在数据库中更好),就像信号量一样,第一个到达的变量使其变为红色并“获取锁定”。

如果获得锁定,客户端可以执行操作,

如果未获得锁定,则其他人已经获得了锁定。

请勿忘记在操作后释放锁定。

您可以使用相同的调用来获取锁定,执行操作并释放锁定。如果未获取锁定,则呼叫将返回错误消息,用户将知道问题所在。

P.S。

如果您正在考虑实时系统,您可以考虑使用websockets或上面的系统使用不同的调用来获取锁并执行操作(并轮询锁定状态)。

答案 1 :(得分:0)

要在网站上跟踪用户并不困难,但要检查他/她离开的时间是否是挑战。

如果这不是时间关键,你可以通过超时来做到这一点。

首先,您需要能够跟踪您网站上的当前用户(可能使用sqlite,textfile,mysql / mariadb)(可能由IP识别),用户加载页面时会更新。 超时后,可以更新跟踪存储,下一个或新的跟踪存储可以按住按钮。

如果你需要这个实时,你需要做更多的事情。在这种情况下,我会使用Websockets或NodeJS来保持与您的页面的连接,实际上您可以使用它来跟踪活动用户并且应该能够保留按钮。 只需保持它就像实时在线聊天而不发短信。在那里你需要跟踪在线用户。

(Websockets或NodeJS只是一个例子,有很多技术可以存档实时“协作”。)