2013-10-09 2 views
0

Как обновить график графика jqplot после фиксированного интервала времени (например, 10 секунд)? Я написал следующий код, в котором данные оси y генерируются случайным образом, но после фиксированного интервала времени он не обновляется.Обновление диаграммы графика jqplot после фиксированного интервала времени

<?php 
$x = array(); 
$y = array(); 
for($i=0;$i<50; $i++) 
{ 
$x[] = $i; 
$y[] = rand(10, 200); 
} 

$x_data = json_encode($x); 
$y_data = json_encode($y); 

Yii::app()->clientScript->registerScript('chart_big'," 
$(document).ready(function(){ 
    $.jqplot.config.enablePlugins = true; 
    var s2 = $y_data; 
    var ticks = $x_data; 

    plot5 = $.jqplot('chart_big', [s2], { 
     // Only animate if we're not using excanvas (not in IE 7 or IE 8).. 
     animate: !$.jqplot.use_excanvas, 
     seriesDefaults:{ 
      renderer:$.jqplot.BarRenderer, 
      pointLabels: { show: true } 
     }, 
     axes: { 
      xaxis: { 
       renderer: $.jqplot.CategoryAxisRenderer, 
       ticks: ticks 
      } 
     }, 
     highlighter: { show: false } 
    }); 

    $('#chart1').bind('jqplotDataClick', 
     function (ev, seriesIndex, pointIndex, data) { 
      $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data); 
     } 
    ); 
    $('a[href=\"#yw1_tab_4\"]').on('shown', function(g) { 
      if (plot5._drawCount === 0) { 
      plot5.replot(); 
     } 
    }); 


    setInterval(function() { 

     s2 = $y_data; 
     ticks = $x_data; 
     plot5.series[0].data = s2; 
     plot5.replot(); 
    }, 10000); 


}); 
"); 
?> 
+1

пожалуйста, обратитесь к этому сообщению: [http://stackoverflow.com/questions/18535670/jqplot-animate-data-change-without-reloading-graph/18539858](http:/ /stackoverflow.com/questions/18535670/jqplot-animate-data-change-without-reloading-graph/18539858) – Gyandeep

+0

Благодаря Gyandeep это дало мне представление о том, как заставить его работать в моем случае. – prattom

ответ

0

Попробуйте $('#chart_big').unbind();plot5.destroy(); и затем участок с новыми данными. Replot(); может вызвать утечку памяти.

см это SO Question

+0

Я решил свою проблему, возникла некоторая проблема с сюжетными точками, которые мой граф принимал за вход для replot(). У них не было проблем с кодом. Спасибо за ответ и ваше предложение относительно destroy() и replot(). – prattom

Смежные вопросы