0

我正在尝试绘制实时图,因为我的 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 中,服务器只轮询一次。因此,我只能不断读取第一个数据。有什么方法可以让图表更新到表的最后一个值?用阿贾克斯?

谢谢你的帮助

4

2 回答 2

2

是的,您可以使用Periodic refresh (Polling)HTTP Streaming

请注意,这两个选项都可能对带宽要求很高。

于 2010-07-28T05:06:42.210 回答
0

你必须做一些投票。但即使在您这样做之前,1. 创建一个 php 文件,该文件从数据库中检索所有重要数据。2.让该文件以格式化的方式回显/返回该数据。3. 让 js 函数定期轮询该文件(在 setInterval() 中运行的函数)

是的..会有一些带宽问题,但我认为它是可控的。

于 2010-08-28T00:34:49.833 回答