我设置了一个非常小的(内部)专用Web服务器,我需要每隔10秒从XML文件中提取一些能量数据。这是我到目前为止的PHP代码:
<?php
$mydata = simplexml_load_file('http://192.168.x.xx:yyy/data.xml');
echo $mydata->device[0]->name;
echo $mydata->device[0]->value;
?>
我在我的网络服务器上测试了类似的代码并安装了PHP,我认为这应该可行,但我希望每隔10秒左右运行一次。这样,我网页上显示的数据始终是最新的。该网页将作为墙上的标志全天候运行。刷新数据的最简单方法是什么?
答案 0 :(得分:4)
我只需刷新使用Ajax显示数据的网页部分。使用JavaScript timer触发刷新。
答案 1 :(得分:2)
最简单的方法?将此行添加到您的页面。
<meta http-equiv="refresh" content="10">
这可能不是最好的方法,特别是如果页面上有很多东西,你不需要每10秒重新加载一次。如果是这种情况,您应该查看AJAX。
如果您的页面设置只返回您需要的数据(例如您的示例),您可以使用JavaScript setInterval()
每10秒发出一次异步请求以获取最新数据并显示它。
答案 2 :(得分:0)
如果您通过浏览器运行此操作,那么我会选择Eric的答案。
但是,如果从命令行运行此命令,则可以执行以下两种操作之一:
让您当前的脚本说pull_energy_data.php每10秒从一个cron作业运行一次。不要忘记创建某种锁定机制。如果作业运行时间超过10秒,并且您将同时运行多个脚本。
另一种方法是让一个脚本包裹你的pull_energy_data.php在循环中运行并每10秒执行一次。这比前一种方法更不可取,因为您需要跟踪上次运行pull_energy_data.php的时间以及如何发出命令来停止包装器脚本。
答案 3 :(得分:0)
假设您在Linux / Unix中运行服务器,或许考虑为它编写一个cronjob(自动化作业)?
我能想到的一个解决方案是每隔10秒将PHP脚本作为cronjob运行,将输出写入文件或数据库表。
然后,您可以编写一个单独的PHP脚本,只要有人在浏览器中加载它,就会读取文件/数据库条目的内容。