Javascript 除了轮询数据库中的值,最好的替代方法是什么?

Javascript 除了轮询数据库中的值,最好的替代方法是什么?,javascript,mysql,node.js,ajax,http,Javascript,Mysql,Node.js,Ajax,Http,我有一个Javascript web应用程序,我使用Node.JS作为服务器组件 我想将我的应用程序与数据库集成。该数据库有一个表,其中包含一个名为“status”的字段,该字段可以频繁更改(每隔几分钟左右) 我想让我的web应用实时知道状态字段的值 我当前的方法: 我现在在Javscript中有一个AJAX函数,它向Node.js服务器发送一个HTTP请求。js服务器从数据库中选择记录,然后将结果返回给AJAX函数,该函数将结果显示在屏幕上。我已经设置了一个间隔来每秒执行一次函数 这似乎不是一

我有一个Javascript web应用程序,我使用Node.JS作为服务器组件

我想将我的应用程序与数据库集成。该数据库有一个表,其中包含一个名为“status”的字段,该字段可以频繁更改(每隔几分钟左右)

我想让我的web应用实时知道状态字段的值

我当前的方法:

我现在在Javscript中有一个AJAX函数,它向Node.js服务器发送一个HTTP请求。js服务器从数据库中选择记录,然后将结果返回给AJAX函数,该函数将结果显示在屏幕上。我已经设置了一个间隔来每秒执行一次函数

这似乎不是一个很好的选择,它在我的服务器上造成了很多流量


实时监视SQL字段的正确方法是什么?

如果您的所有客户端都对数据库中的相同值感兴趣,并且您的数据库状况阻止了任何非轮询情况,那么您需要将轮询从客户端移动到服务器,以便服务器可以为所有客户端轮询一次。这将极大地限制服务器和数据库服务器上的负载


然后,您可以让每个客户机通过webSocket(或socket.io)连接连接到服务器,并且当数据库中的值发生更改时(并且只有在那时),您才可以通过webSocket连接向每个客户机发送更新消息。这将使用更少的服务器CPU、带宽和客户端电池。

为什么不将变量保留在内存中,并避免轮询数据库?状态更改时,更新内存和数据库中的值。这取决于您的用例和资源,我不控制状态更改。此字段来自第三方数据库。我需要我的应用程序知道值是多少。第三方数据库?你可以直接访问它吗?如果没有检查或刷新连接以便他们将其推送给您,您怎么知道什么时候更新了?如果是您管理的数据库,我建议您查看Firebase,否则,我很想看看其他人怎么说。似乎是一个简单的web套接字和内存管理设置。是否有多个客户端对此值感兴趣,或者是否有多个客户端各自都有自己感兴趣的查询?您去哪里了?已经一个星期没有回应了。它试图用一些问题和答案来帮助你,但你似乎消失了。你不应该这样使用这个网站。