Javascript 从网页中的实时JSON绘制实时图形?

Javascript 从网页中的实时JSON绘制实时图形?,javascript,php,json,graph,Javascript,Php,Json,Graph,我正在php网页中创建一个实时javascript图。下面是名为“Smoothie”的javascript图,我已将“Math.random()”更改为我的值,我已从JSON URL解析数据。但是,它不是实时更新的。我已经使用html refesh 5秒钟了,但它正在重置图形 var smoothie=新的SmoothieChart({ 网格:{strokeStyle:'rgb(125,0,0'),填充样式:'rgb(60,0,0'), 线宽:1,毫线:250,垂直截面:6,}, 标签:{fi

我正在php网页中创建一个实时javascript图。下面是名为“Smoothie”的javascript图,我已将“Math.random()”更改为我的值,我已从JSON URL解析数据。但是,它不是实时更新的。我已经使用html refesh 5秒钟了,但它正在重置图形

var smoothie=新的SmoothieChart({
网格:{strokeStyle:'rgb(125,0,0'),填充样式:'rgb(60,0,0'),
线宽:1,毫线:250,垂直截面:6,},
标签:{fillStyle:'rgb(60,0,0)}
});
streamTo(document.getElementById(“mycanvas”),1/*delay*/);
//资料
var line1=新的时间序列();
var line2=新的时间序列();
//每秒向每行添加一个随机值
var sw_2=//来自JSON(实时数据)
var sw_1=//来自JSON(实时数据)
setInterval(函数(){
line1.append(new Date().getTime(),'sw_2');//它是“Math.random()”
行2.append(new Date().getTime(),'sw_1');},1000)//试图改变这个延迟,没有运气
//添加到SmoothieChart
addTimeSeries(第1行,{strokeStyle:'rgb(0,255,0'),fillStyle:'rgba(0,255,0,0.4'),线宽:3});

addTimeSeries(第2行,{strokeStyle:'rgb(255,0,255)',fillStyle:'rgba(255,0,255,0.3)',线宽:3})最后,经过几周的工作,我终于找到了一种称为“Ajax”的技术,它可以用来更新PHP页面上的信息(PHP有单独的代码)。我首先创建了PHP页面来获取信息,然后js脚本将每1秒更新一次信息


var graph5;//全球的
函数requestData6(){
$.ajax({
url:'graph/sw7port1.php',
成功:函数(点){var series=graph5.series[0],
shift=series.data.length>20;//如果序列长度超过20,则进行shift
//补充一点
graph5.系列[0].添加点(eval(point),true,shift);
//一秒钟后再打
setTimeout(requestData61000);},
缓存:false});}
$(文档).ready(函数(){
图5=新的高点图表。图表({
图表:{renderTo:'sw7_port1',defaultSeriesType:'spline',事件:{load:requestData6},
标题:{text:'Switch 7-Host 7'},
xAxis:{type:'datetime',tickPixelInterval:150,maxZoom:20*1000},
yAxis:{minPadding:0.2,maxPadding:0.2,标题:{text:'bits per second rx',边距:40}},
系列:[{name:'livetrafficport1',数据:[]}];});

var graph5;//全球的
函数requestData6(){
$.ajax({
url:'graph/sw7port1.php',
成功:函数(点){var series=graph5.series[0],
shift=series.data.length>20;//如果序列长度超过20,则进行shift
//补充一点
graph5.系列[0].添加点(eval(point),true,shift);
//一秒钟后再打
setTimeout(requestData61000);},
缓存:false});}
$(文档).ready(函数(){
图5=新的高点图表。图表({
图表:{renderTo:'sw7_port1',defaultSeriesType:'spline',事件:{load:requestData6},
标题:{text:'Switch 7-Host 7'},
xAxis:{type:'datetime',tickPixelInterval:150,maxZoom:20*1000},
yAxis:{minPadding:0.2,maxPadding:0.2,标题:{text:'bits per second rx',边距:40}},
系列:[{name:'livetrafficport1',数据:[]}];});

您提供的代码运行时出错。还要检查您的JSFIDLE,它不工作。您链接的问题显示了前进的方向
file\u get\u contents()
只执行一次-出于您的目的,您必须像在链接问题中一样流式处理json。html重载确实会重置整个站点:)@FelixHäberle,不幸的是,代码无法正常工作,因为您可以看到它正在本地主机上运行。代码已经存在,并且理解了这些概念,因此您可以指出错误。thxajax轮询新数据,或者websockets@nogad,你能解释一下并举例说明答案吗?谢谢