我正在尝试绘制一个实时图形,因为我的mysql表不断被插入值,就像从中引用的移动图形 http://kalanir.blogspot.com/2009/11/how-to-plot-moving-graphs-using-flot.html 这些值实际上来自二氧化碳传感器,该传感器使用位置 id 的 co2 值更新表格的值。我将她的Math.Random更改为以下代码:
<?php $result = mysql_query("SELECT * FROM node1 ORDER BY id DESC LIMIT 1")or die(mysql_error());?>
<?php $row = mysql_fetch_array( $result );?>
var j = "<?php echo $row['co2'];?>";
var next = "<?php echo $row['id'];?>";
for (var i = 0; i < this.xscale - 1; i++)
{
this.array[i] = [i,this.array[i+1][1]]; // (x,y)
}
this.array[this.xscale - 1] = [this.xscale - 1,j];
但是,当我运行此代码时,第一个值会更改,之后它将保持不变,即使正在更新表的最后一行。 我听说这是因为在php中,服务器只被轮询一次。因此,我只能不断读取第一个数据。有什么方法可以让图表更新到表格的最后一个值?用ajax?
感谢您的帮助
答案 0 :(得分:2)
是的,您可以使用Periodic refresh (Polling) 要么 HTTP Streaming。
请注意,这两个选项对带宽要求都很高。
答案 1 :(得分:0)
你必须做某种轮询。但即使在你这样做之前, 1.创建一个php文件,从db中检索所有重要数据。 2.让该文件以格式化方式回显/返回该数据。 3.让js函数轮询该文件的间隔(在setInterval()中运行的函数)
是的..会有一些带宽问题,但我认为它是可管理的。