This question already has an answer here:
How to push data to client using node
                            
                                (1个答案)
                            
                    
                2年前关闭。
        

    

我有一个使用PUG / Jade文件渲染网页的节点项目。每分钟执行一次JS文件,以更新Redis数据库,我希望GUI也每分钟更新一次,以反映所有更改。

以下是当前如何传递数据的简化版本:


用户访问网址.../home
routes.js执行router.get('/home', controller.renderHome)
controller.js执行以下操作:

function getData(){
     return { some_data }
}

renderHome: async (req, res) => {
    res.render('home', getDetails())
}



然后,我可以访问.pug文件中的数据。

使用这种方法,我只能在访问路由(即刷新页面)时获取更新的数据。但是数据用于绘制图形,我想每分钟更新一次。

相反,我应该如何将数据传递到GUI,这将使我每分钟可以简单地重新绘制图形,而不是每次都强制浏览器重新加载(我猜这是一种不好的做法)

最佳答案

您有两种选择:


使用WebSocket
公开您的客户端JavaScript可以按指定的时间间隔轮询以更新的API。


WebSocket可能是解决方法:https://socket.io/

09-25 16:34
查看更多