【发布时间】:2019-10-14 22:17:07
【问题描述】:
我目前正在为员工制作一个简单的时钟进出系统。仓库有一台电视机,右边是未登录人员的名单,左边是已登录人员的名单。当他们在楼下的扫描设备上打卡时,我需要电视/楼上的仪表板进行更新并将其名称移动到适当的一侧。
我已经制作了将详细信息记录到数据库中的功能。我知道我可以使用这样的代码:
<meta http-equiv="refresh" content="3;url=thecurrentpagesurl" />
这样做会刷新页面运行一个检查更改并相应更新显示的功能,但是我想知道是否有一种方法可以“侦听”更改而不必经常向服务器发送垃圾邮件。理想情况下,我希望仪表板实时更新。
使用元刷新我可以刷新页面,使用一个函数来检查数据库更改并相应地更新仪表板上的 html。有没有更省资源或更有效的方法来做到这一点?
(我不是 JavaScript 专家,但我有足够的了解可以在基本水平上使用一些)。
编辑
这个问题之前已经问过,我已经查看了其他答案,这就是为什么我得出关于元刷新方面的结论,但是我想知道在我的特定设置下是否有更有效的方法起来。
【问题讨论】:
-
看看 websockets 或 longpolling。
-
AJAX 或 WebSockets 是您的主要选择。但实际上,人们实际上多久打卡一次?人们需要以多快的速度收到通知(即他们实际上对这些信息做了什么,如果他们不立即发现会有问题吗?)。我的意思是,你真的需要每 3 秒更新一次吗?对于所有实际目的,也许每隔几分钟(甚至更少)就可以了。如果是这样,那么您只需更改刷新命令的时间,“恒定”刷新问题就会消失,而无需学习任何新概念或编写任何新代码。
-
视情况而定,这很简单而且有效,可能 3 秒有点短,设置为 60。我不会太担心服务器负载。
-
P.S.对于将来阅读的任何人,我们忘记在这里也提到服务器发送事件(SSE)作为一个选项,因为通信似乎只是单向的。
标签: javascript php