highcharts实时更新和YII框架

highcharts live update and YII framework

本文关键字:框架 YII 实时更新 highcharts      更新时间:2023-09-26

我必须使用highcharts和显示一些传感器数据我使用YII作为php框架。我将时间存储在mysql (v5.6)作为时间戳(3),我需要毫秒分数我想用它,因为我几乎所有的数据都在一秒或两秒内完成

我的控制器给我作为输出["2012-12-01 15:00:00.070",45]但是这一点没有显示在我的图表中,ajax请求只发出一次我在"var series = chart"级别得到firebug的错误。系列[0]。"我不知道问题是在我的高图代码还是在时间格式我也不知道如何在收到点后使用我的代码中的Dateparse请帮忙!

function requestData() {
 $.ajax ({
            type:"get" ,
        url: "<?php echo CController::createUrl('beam/GetSensorsDataLive') ?>",
        data: {"beamId" : "<?php echo $modelBeam['poutre_id'] ?>" },
         dataType: "json",
          success: function(response,point) {
          var series = chart.series[0], //// error here 
    shift = series.data.length > 20;// shift if the series is longer than 20
          chart.series[0].addPoint( point,true, false); // add the point
          setTimeout(requestData, 1000);    // call it again after one second
                                   },
                                 cache: false
    });
           }  
 $(document).ready(function() {
     var chart;
        chart = new Highcharts.Chart({
        chart: {
            renderTo: 'graph',
            type: 'spline',
            events: {
                load: requestData   
            }
        },
        xAxis: {
          type: 'datetime',
          },
              tooltip: {
                  formatter: function() {
                    return '<b>'+ this.series.name +'</b><br/>'+
                    Highcharts.dateFormat('%H:%M:%S:%m', this.x) +'<br/>'+
                    Highcharts.numberFormat(this.y, 2);
            }
        },  

                    series: [{
            name: 'Live Data From sensor <?php echo $modelBeam['poutre_id'] ;?>  ',
             data:[] 
        }]
    });
});

你的数据x应该是JS时间戳,以毫秒为单位,你也可以从php解析你的数据,并使用Date.UTC()函数。