2012-03-20 2 views
0

Я пробуя smoothies chartsСмузи графики с реальными данными JSon

Это выход JSON с моего сервера:

{"time": "1332216212", "in": "4.52", "out": "4.85"} 

Вот код, который делает диаграмму:

<script type="text/javascript"> 
     var dataSet1 = new TimeSeries(), dataSet2 = new TimeSeries(); 

     setInterval(function() { 
     $.getJSON("/stats",function(data){ 
     var now = new Date().getTime(); 
     dataSet1.append(data.time, data.in); 
     dataSet2.append(data.time, data.out); 
    }); 
    }, 1000); 

var smoothie = new SmoothieChart({ minValue: 0.0, maxValue: 1.0, millisPerPixel: 20, grid: { strokeStyle: '#555555', lineWidth: 1, millisPerLine: 1000, verticalSections: 4 }}); 
     smoothie.addTimeSeries(dataSet1, { strokeStyle: 'rgba(255, 0, 0, 1)', fillStyle: 'rgba(255, 0, 0, 0.2)', lineWidth: 3 }); 
     smoothie.addTimeSeries(dataSet2, { strokeStyle: 'rgba(0, 255, 0, 1)', fillStyle: 'rgba(0, 255, 0, 0.2)', lineWidth: 3 }); 
     smoothie.addTimeSeries(dataSet3, { strokeStyle: 'rgba(0, 0, 255, 1)', fillStyle: 'rgba(0, 0, 255, 0.2)', lineWidth: 3 }); 
     smoothie.streamTo(document.getElementById('chart'), 1000); 

    </script> 

Статистика скорости передачи данных Json. С приведенным выше кодом график не получается. Но данные извлекаются с сервера в соответствии с журналами веб-сервера. Я использую jquery1.3.2. У меня что-то не так?

ответ

1

Попробуйте заменить 'data.time' в функции append() для каждого набора данных с созданным вами 'var now'. Из моего использования с Smoothie, он действительно хочет, чтобы клиентская сторона (браузер) имела дело со временем для графического представления, а не значение, выходящее за пределы сервера. Если вам нужна информация о времени от внешнего источника, я бы предложил заглянуть в Flot, потому что это предоставит вам больше возможностей. Smoothie очень прост; он просто хочет, чтобы данные отображались на временной шкале в реальном времени.

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