当前位置: 首页 > 面试题库 >

javascript中的Highchart系列更新

咸亦
2023-03-14
问题内容

我正在尝试通过使用数据库中的当前数据生成一个新数组来更新Highchart系列。但是由于某种原因,我一次只能找到有关遍历数据的信息。一旦创建了图表,它只会再次重新运行相同的代码,因此标签等不会更改-仅[pointStart]和[data]会更改。

有没有办法整体上更新所有数据?我也没有设法使for循环正常工作。

function generateSeries(data){
    var cData = [];
    var rollup = data.rollupData;
    cData['type'] = 'line';
    cData['pointStart'] = convertDateTime(data.lastMinute);
    cData['pointInterval'] = 60 * 1000;
    for(var i in rollup){
        var x = new Array();
        var v = rollup[i].rttSystem;
        switch(v){
            case('line'): var vn = ' (L)'; break;
            case('node'): var vn = ' (N)'; break;
            case('module'): var vn = ' (M)'; break;
            default: var vn = '';
        }
        x['name'] = rollup[i].rollupName + vn;
        x['data'] = rollup[i].kpiData;
        cData.push(x);
    }
    return cData;
}

数组的输出看起来像[0:[‘name’:’California’,’data’:[0.002,0.003
…],1:[‘name’:’Oklahoma’,’data’:[0.001, 0.002
…],’type’:’line’,’pointStart’:’‘,’pointInterval’:60 * 1000]

var chart = new Highcharts.Chart({
    chart: {
    ...
    },
    series: generateSeries(data)
    }, function(chart){
        setInterval(function(){
            var newSeries = generateSeries(data);
            // Udate the series again with the current data
        },60000);
    }
});

更新:这是系列,但不是pointStart。

if(chart.series.length > 1){
    var s = 0;
    for(var i in newSeries){
        chart.series[s].setData(newSeries[i].data);
        chart.series[s].pointStart = newSeries[i].pointStart;
        s++;
    }
}else{
    chart.series[0].setData(newSeries[0].data);
    chart.series[0].pointStart = newSeries[0].pointStart;
}

问题答案:

要更新图表,我通常这样做:

chart.series[0].update({
    pointStart: newSeries[0].pointStart,
    data: newSeries[0].data
}, true); //true / false to redraw

尝试在更新后调用重绘。



 类似资料:
  • JavaScript(简称 JS) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。

  • 本文向大家介绍在SAP系统中更新新列的默认值,包括了在SAP系统中更新新列的默认值的使用技巧和注意事项,需要的朋友参考一下 将默认值更新为一列不是一个好习惯,因为它将在系统中直接不可见,也不会被CTS选中。同样,在SAP / ABAP环境中,没有选择向表列添加默认值的选项。如果选择使新列具有NON-NULL值,则必须手动更新默认值,并且将花费大量时间来修改表。最好的方法是根据列的类型将默认值选择为

  • 问题内容: 这是该问题的后续措施。 我正在开发CKEditor的组件,这是字体下拉菜单的调整版本,始终显示当前选择的字体系列/大小值,无论它们在何处定义,使用和排序。 正如您在另一个问题中看到的那样,确定字体大小现在可以跨浏览器使用。现在我在使用该属性时遇到了麻烦。我的通用“计算样式”函数仅返回定义的完整字体字符串,例如 为了使设置与字体家族下拉列表中的条目匹配,我需要的是我正在检查的DOM元素的

  • 我想把点的形状设为一个圆。我就是这样做的: 然后我得到以下结果: 圆圈略微移动。我试图更改,以便根据直线将圆居中,但没有任何效果。什么是使圆圈居中的正确方法?

  • 深入理解 JavaScript 系列文章,包括了原创,翻译,转载,整理等各类型文章。

  • JavaScript 基础进阶文章,包含了我们日常开发中经常遇到的一些问题和技术难题。