Performance HighChart让navigator处理动态数据
我正在尝试一个比特币的实时图表,它可以长期运行,有两个数据集使用HighStocks进行买卖。问题是数据都是实时的,所以图表开始时没有数据,每30秒更新一次,在这种情况下HighStocks似乎并不总是很好 我已经创建了一个非常接近最终代码的演示!增量设置为1秒以加快演示,如果将AdaptToUpdateData更改为true,则会产生显著的滞后效应,直到最低导航器间隔超过30秒,因此请小心 我希望navigator区域正常工作,但如果我让它使用AdapteUpdateData进行更新:true 在很短的时间内,图形非常滞后,我不能让它运行几个小时,而整个浏览器都开始不响应并出现脚本延迟错误 这对我来说很奇怪,例如,以30秒为增量运行8小时只需要960个数据点,不足以使用看起来那么多的处理和内存 如果AdapteUpdateData为false,则图形速度更快,更新流处于ok状态,直到使用其中一个导航按钮,则图形不再是“活动”的,因为新更新超出范围,而且导航器从1970年开始,而不是从系列数据开始 有人知道一种触发导航器刷新的方法吗?或者,当我添加一个新的数据点时,我可以调用这种方法来保持导航器区域的更新,并使图形保持在最新的数据输入点,并且不会阻止页面及时呈现?或者使用api或数据的更好方法 希望这是有道理的 这张图的整个想法是保持运行数天,可能数周,以便随着数据的进展实时查看数据,我不能使用HighStocks提供的处理大型数据集示例代码,因为数据都是实时的,更不用说我不是真的在处理大型数据集,只是不断缓慢的更新Performance HighChart让navigator处理动态数据,performance,firefox,dynamic-data,highstock,webpage-rendering,Performance,Firefox,Dynamic Data,Highstock,Webpage Rendering,我正在尝试一个比特币的实时图表,它可以长期运行,有两个数据集使用HighStocks进行买卖。问题是数据都是实时的,所以图表开始时没有数据,每30秒更新一次,在这种情况下HighStocks似乎并不总是很好 我已经创建了一个非常接近最终代码的演示!增量设置为1秒以加快演示,如果将AdaptToUpdateData更改为true,则会产生显著的滞后效应,直到最低导航器间隔超过30秒,因此请小心 我希望navigator区域正常工作,但如果我让它使用AdapteUpdateData进行更新:true
$(function()
{
var curTime = $.now();
var chart = new Highcharts.StockChart({
chart: {
renderTo: 'chartContainer',
zoomType: 'x',
turboThreshold:100,
marker: {
enabled: false,
states: {
hover: {
enabled: true,
radius: 5
}
}
},
shadow: false
},
rangeSelector: {
buttons: [{
count: 30,
type: 'second',
text: '30S'
},{
count: 5,
type: 'minute',
text: '5M'
},{
count: 30,
type: 'minute',
text: '30M'
},{
count: 60,
type: 'minute',
text: '1H'
},{
count: 360,
type: 'minute',
text: '6H'
},{
count: 720,
type: 'minute',
text: '12H'
},{
count: 1,
type: 'day',
text: '1D'
},{
type: 'all',
text: 'All'
}],
inputEnabled: false
},
scrollbar: {
liveRedraw: false
},
title : {
text : 'Live Bitcoin Data'
},
exporting: {
enabled: true
},
navigation: {
buttonOptions: {
theme: {
'stroke-width': 1,
stroke: 'silver',
r: 0,
states: {
hover: {
fill: '#bada55'
},
select: {
stroke: '#039',
fill: '#bada55'
}
}
}
}
},
navigator : {
adaptToUpdatedData: false
},
yAxis: {
title: {
text: 'Price'
}
},
xAxis: {
type: 'datetime'
},
credits: {
enabled: false
},
series: [{
name: 'Sell',
color: '#00FF00',
pointStart: $.now(),
data : [],
tooltip: {
pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>',
valueDecimals: 3,
valuePrefix:"$"
}
},{
name: 'Buy',
color: '#FF00FF',
pointStart: $.now(),
data : [],
tooltip: {
pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>',
valueDecimals: 3,
valuePrefix:"$"
}
}]
});
setInterval(function() {
var chart = $('#chartContainer').highcharts();
var exchangeSellRate = Math.floor(Math.random()*30)+40;
var exchangeBuyRate = Math.floor(Math.random()*30)+40;
var x = $.now();
chart.series[0].addPoint([x,exchangeSellRate],false,false);
chart.series[1].addPoint([x,exchangeBuyRate],true,false);
}, 1000);
});
关于挂起图表的问题,报告。感谢您发布该链接,希望他们能够解决解决大多数导航器问题,但我也遇到了AdapteUpdateData:false的同样问题。它只是需要更长的时间才能显现出来。目前,每8-12小时,我必须刷新浏览器,因为它成为laggy使用超过这一点。我希望有人对动态图和解决方案有一定的经验,除非这个库天生就是动态数据滞后的