Я начал использовать JQPlot для рисования графика в режиме реального времени. У меня есть один пример, образец, работающий в котором он будет рисовать график с двумя данными только-рендеринг в реальном времени с использованием JSPlot
var storedData = [70, 10];
Затем я добавил кнопку, если нажать на эту кнопку, он начнет рендеринг еще некоторые данные. В принципе, вы можете сказать точно так же, как данные в реальном времени с сервера.
Но проблема, с которой я столкнулся сейчас, - это как только я нажал на кнопку Start Updates
, она ничего не рисует. Поэтому я верю, что я перепутал что-то с кнопкой. Я долго работал над Javascript и HTML, поэтому я забыл много вещей.
Ниже мой код-
<!DOCTYPE html>
<html>
<head>
<title>Line Charts and Options</title>
<link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
<link rel="stylesheet" type="text/css" href="examples.min.css" />
<link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
<link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
<script class="include" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<div class="colmask leftmenu">
<div class="colleft">
<div class="col1" id="example-content">
<div id="chart1" style="height: 300px; width: 500px; position: relative;"></div>
<button>Start Updates</button>
<script class="code" type="text/javascript">
$(document).ready(function(){
var storedData = [70, 10];
var plot1;
renderGraph();
$('button').click(function(){
doUpdate();
$(this).hide();
});
function renderGraph() {
if (plot1) {
plot1.destroy();
}
plot1 = $.jqplot('chart1', [storedData]);
}
var newData = [9, 1, 4, 6, 8, 2, 5];
function doUpdate() {
if (newData.length) {
var val = newData.shift();
$.post('/echo/html/', {
html: val
}, function(response) {
var newVal = new Number(response); /* update storedData array*/
storedData.push(newVal);
renderGraph();
log('New Value '+ newVal+' added')
setTimeout(doUpdate, 3000)
})
} else {
log("All Done")
}
}
function log(msg) {
$('body').append('<div>'+msg+'</div>')
}
});
</script>
<script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
<script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
<script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
</body>
</html>
Я не в состоянии сделать работу события нажатия кнопки. Как только я нажимаю на кнопку Start Update
, она ничего не рисует. Правильное поведение должно заключаться в том, что он должен начинать рендеринг на графике с новыми наборами данных.
Я попытался сделать это рендеринг в реальное время работы вещи из этого jsfiddle
я скопировал же кучу кода из выше JSFiddle в моем HTML, но это не работает для меня. Может ли кто-нибудь помочь мне в этом?
Какое сообщение, если оно есть, вы видите на своей консоли javascript? – Fergus
@ Fergus, я не вижу никакого сообщения. Я считаю, что я перепутал с тем, как работает кнопка, и с тем, как я добавил в тег скриптов. – ferhan