首页 > 解决方案 > 无需刷新即可动态更新 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 手动刷新,则会显示新数据。

标签: node.jsexpresssocket.io

解决方案


推荐阅读