自动更新网页内容

我正在开发一系列与linux机器通信的传感器。 我需要build立一个Web界面来显示传感器的状态,并在任何一个传感器的状态改变时自动更新(或者每隔几秒自动更新一次)。

读取传感器的代码全部用C代码。 将传感器数据自动推送到networking浏览器,甚至是不断请求数据,有什么select?

我已经考虑了以下scheme:在C程序中为传感器数据分配共享内存,可以通过像php这样的服务器端脚本来读取。 然后有一些Ajax或一些请求循环或计时器事件的数据。

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

我真的没有任何与PHP / AJAX的经验,所以任何提示如何实施这将是伟大的。

一些关键因素我不知道:

– 如何在JavaScript中进行计时

– 如何在JavaScript中获取某种结构化数据,从请求到服务器(例如,读取传感器数据的PHP页面)

正如你所说,获取数据,你有两个解决方案:

A)用ajax提取数据

您可以轻松地使用setInterval执行一些定期任务:

 setInterval(callbackserver, PERIOD_MILLIS); 

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

B)用js服务器推送数据

数据可以推送到浏览器,而不是拉动它。 为此你需要一个像Comet这样的协议的服务器。 检查这个项目的更多信息

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

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

我已经考虑了以下方案:在C程序中为传感器数据分配共享内存,可以通过服务器端脚本读取,例如php

为什么不简单地在C中创建一个deamon,并通过一个exec("mydeamon -data")命令通过PHP获取数据

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

的setTimeout( “yourAjaxRequestFunction”,延迟);

在你的情况下,如果你/你的公司能负担得起,我会推荐Wt 。
如果你的应用程序是用C编写的,那么C ++可能比PHP或Javascript更为熟悉。
它也可以处理使用Ajax拉或网络套接字推送数据到网页。

  • Ajax将是一个定期抽取数据的好选择。 这是完全客户端,很容易开始。 检查互联网上的一些例子。
  • 而对于服务器端来说,你需要从C获取数据的东西。在C和PHP之间共享内存将是单调乏味的。 您可以简单地创建或更新一个文本文件C.并将此文件放置在Web服务器的主文件夹(也许apache)