自动更新网页内容

Auto-updating Webpage content

本文关键字:网页内容 更新      更新时间:2023-09-26

我正在研究一个系统,它有一堆传感器与linux机器通信。我需要为此制作一个web界面,以显示传感器的状态,并在任何传感器的状态发生变化时自动更新它们(或每隔几秒钟自动更新它们)。

读取传感器的代码都是C代码。将传感器数据自动推送到web浏览器或甚至通过不断请求数据的选项是什么?

我考虑了以下方案:在C程序中为传感器数据分配共享内存,这些数据可以由服务器端脚本(如php)读取。然后在循环或计时器事件上请求一些ajax或其他东西。

是否有可能将数据推到客户端而不是拉?

我真的没有任何php/ajax的经验,所以任何关于如何实现它的提示将是伟大的。

一些我不知道的关键元素:

-如何在javascript中做计时

-如何从请求到服务器(例如php页面读取传感器数据)在javascript中获得某种结构化数据

正如您所说,要获取数据,您有两种解决方案:

A)使用ajax提取数据

使用setInterval:

可以轻松地执行一些周期性任务
setInterval(callbackserver, PERIOD_MILLIS);

如果你使用像jquery这样的框架,有很多插件可以定期更新。

B)使用js服务器推送数据

数据可以推送到浏览器,而不是拉取。为此,您需要一个基于协议(如Comet)的服务器。查看此项目了解更多信息

如何在javascript中从请求到服务器的动态中获取某种结构化数据

json似乎是跨语言结构化数据的完美解决方案。

我考虑了以下方案用于传感器数据的C程序,可由服务器端读取脚本如php

为什么不简单地在C中创建一个daemon,然后通过PHP使用exec("mydeamon -data")命令从它获取数据呢?例如

  1. 一般不能使用HTTP推送数据。您必须轮询服务器。(如果你感兴趣的话,还有其他选择。见彗星)
  2. 可以使用Ajax动态地向服务器发送请求。有关详细信息,请参阅本教程。这很简单。
  3. 您必须定期发送此Ajax。您可以使用setInterval

setTimeout("yourAjaxRequestFunction",延迟);

在你的情况下,如果你/你的公司负担得起,我建议你使用Wt。
如果你的应用程序是用C编写的,那么c++可能比PHP或Javascript更熟悉。它还可以使用ajax pull或web sockets将数据推送到网页。

    Ajax是定期提取数据的好选择。它完全是客户端,非常容易上手。在网上查一些例子。
  • 对于服务器端,您需要从C中获取数据。在C和PHP之间共享内存将是乏味的。你可以简单地用c语言创建或更新一个文本文件,并将该文件放在web服务器(也许是apache)的主文件夹