刷新页面而无需不断刷新

时间:2019-05-29 10:18:25

标签: javascript php

我目前正在为员工制作一个简单的时钟进出系统。仓库中有一台电视,在未登录人员的右边列出了姓名,在未登录人员的左边列出了姓名。当他们在楼下的扫描设备上计时时,我需要电视/楼上的仪表板进行更新,并将其名称移到适当的一侧。

我已经完成了将详细信息记录到数据库中的功能。而且我知道我可以使用以下代码:

<meta http-equiv="refresh" content="3;url=thecurrentpagesurl" />

这样做会刷新页面,运行一个功能来检查更改并相应地更新显示,但是我想知道是否有一种“侦听”更改的方法而不必经常向服务器发送垃圾邮件。理想情况下,我希望仪表板实时更新。

使用元刷新,我可以使用一个功能来刷新页面,以检查数据库更改并相应地更新仪表板上的html。是否有一种资源消耗较少或更有效的方法?

(我不是JavaScript专家,但我有足够的理解,可以在基本水平上使用它们)

编辑

这个问题以前问过,我看了其他答案,这就是为什么我得出有关元刷新方面的结论,但是我想知道在给定特定设置的情况下是否有更有效的方法上。

2 个答案:

答案 0 :(得分:1)

在您描述的环境中,当前的方法还不错。

以下是一些想法/选项,您可以根据需要阅读和完善您的应用程序:

  • 使用 Ajax 并刷新列表内容。您可以将其与整洁的动画相结合。但这仍然不是实时的。当使用jQuery或类似的库时,这特别容易。
  • 您可以将 Ajax与longpolling一起使用,这意味着Ajax-Request将在服务器端保持打开状态,直到发生任何更改(或可能发生超时)。当请求得到响应时,只需打开另一个带有longpolling的ajax请求,然后等待更多更改即可。这不是实时的,但确实很接近。在某些环境中,这可能会给服务器带来压力,因为每个打开的请求都将占用资源或阻塞套接字/线程等。
  • 另一个更现代的版本是使用 Websockets 。这是最复杂的方法,但是通信是实时的。 Browser-view和Server正在建立tcp连接并保持打开状态以通过它进行通信。还有一些不错的Websockets开源库。

在您描述的情况下,我将使用您当前的解决方案,并研究前两个想法。它们并不是那么复杂,并且可以带来“实时”更新的感觉。

答案 1 :(得分:0)

我决定在设置的时间运行刷新,所以我所做的是使用php date函数来计算时间,如果时间在7-9(最早的工作人员进入)或5-7(最新的时间)之间时钟出来),它将以这种方式运行meta刷新,这样一整天都不会检查,而每个人都在工作。