我继承了一个使用Highcharts的项目。
之前的开发人员使用.addSeries
方法将所有系列添加到正在呈现的每个图表中。从我读过的Highcharts来看,似乎.addSeries
实际上是动态添加数据。
用于填充图表的数据来自AJAX请求。旧开发人员的方法是获取数据,渲染图表,然后使用.addSeries
添加系列。我认为更新options.series
然后将整个事项传递给new Highcharts.Chart()
进行渲染可能会更好,将.addSeries
排除在等式之外。
然而,由于我是Highcharts的新手,我希望得到一些关于更好的方法的反馈。
答案 0 :(得分:1)
你走的路很好,但你的问题表明你可能只是在寻找偏好而不是严格的正确/错误答案。
从我所看到的情况来看,除非您在页面上进行了相互作用,这会引发在绘制图表后需要更新图表,否则使用addSerie
的好处就是添加一些视觉效果。使用addSerie
,您的图表将在访客面前直观地绘制 - 与已经绘制的图表相比。 (我相信HighCharts演示网站有一些很好的例子。)
我最近还继承了一个HighCharts项目,并通过动态解析AJAXed数据来使用动态数据生成新的Highcharts.Chart()
。好消息是所有图表仍然具有良好的视觉效果(耀斑很重要)因为它们在AJAXed数据完全加载之前不会绘制。这个片段说明了我如何加载动态图表,即时解析JSON数据:
$(function () {
var visitsChart;
$(document).ready( function() {
$.getJSON('/json-data-url', function(json){
var visitsChart = new Highcharts.Chart({
chart: {
renderTo: 'visitsContainer',
type: 'spline',
},
title: {
text: 'Test Widget'
},
series: [{
name: 'Speed',
data: [parseInt(json.visits)],
}],
...
});
});
});
});
我不会说谎...当我开始时我有几分钟的头发拉动,但现在我希望我有更多的时间与Highcharts合作,因为一旦你开始滚动它就很有趣。希望这会有所帮助。