node.js - 无需刷新即可动态更新 webapp 上的数据
问题描述
我创建了一个 webapp,它作为一个独立的应用程序运行良好,不需要 nodejs 或任何东西,但现在我正在尝试将它迁移到 Expressjs/nodejs。
我现在遇到的问题是,我想动态地、实时地更新该网站上的数据,而无需用户刷新网页。网页基本上只是显示一些值,它们需要每半秒或每秒刷新一次才能使其显示为实时。
首先,我从 EJS 开始,但我找不到使用 EJS 的方法,并且我发现的大多数答案都指出我必须使用 socketIO 之类的东西来完成这项工作,所以我做到了。
我在服务器上的 socketIO 代码:
io.on('connection', (socket) => {
setTimeout(function() {emiter(socket)}, 1000)
console.log('a user connected');
});
function emiter (socket) {
socket.emit('MyEvent', GetData.RData.R[" 1"].Val);
}
我在前端的socketIO代码:
var socket = io.connect('http://192.168.0.2:3000')
socket.on('MyEvent', function (message) {
$("#test").html(message);
})
它正在发送数据,但是当有新数据可用时它不会刷新。GetData.RData.R 由每 1 秒执行一次以从设备检索新数据的 ajax 调用填充。如果我用 F5 手动刷新,则会显示新数据。
解决方案
推荐阅读
- javascript - JS 在 .on() 上停止传播
- c++ - 前向声明是否修复了参数的数量?
- docker - Docker检查主机的IP地址
- kubernetes - Kubernetes 部署清单中环境的托管机密
- jquery - 如何仅根据选定的单选按钮获得总和?
- visual-studio - Go 错误 - 预期为“;”,在 Visual Studio 中找到“包”
- node.js - 在节点中按 JSon 分组以获得唯一 ID
- javascript - 目标入口点“@auth0/angular-jwt”中的错误缺少依赖项:
- ssh - 默认 SSH 选项禁用 GCP
- dataframe - 如何根据数据集中某列的值制作散点图?