javascript - 按需更新多个 Highcharts 实例的最佳性能

标签 javascript loops highcharts coffeescript

我目前有一个包含一些 Highcharts 图形的页面,大约有 22 个,它们受用户可选择的过滤器的影响。每个过滤器交互都会删除当前系列并添加新系列。

我从两种方法开始,第一种方法是有一个循环遍历所有保存的实例对象,删除每个系列,

while currentChart.series.length > 0
  currentChart.series[currentChart.series.length - 1].remove()

然后,在另一个循环之后,遍历数组来搜索过滤器数据

currentChart.addSeries
  name: operatorName
  data: data
  type: options.chartType

但这个实现结果相当繁重。

然后,我实现了一个超时,让插件喘口气,不要堆积太多,通过在每个循环之间设置 1 毫秒的超时,我获得了更好的性能,并且可以看到动画,但它使它有点迟缓。设置较高的超时时间会使页面难以导航,并且过滤器更改会堆积,因为整个图形更新将花费很多时间。

最佳答案

根据我的经验,当我有大量图表或数据点时,我通常会关闭动画。动画增加了很多处理开销,如果没有动画,highcharts 通常可以很好地处理大量数据。

我想您可以尝试删除该系列并一次为每个图表添加新的系列,而不是删除所有然后添加所有。我怀疑这会对您的页面响应能力产生很大的影响。

  chart: {
      animation: false
  },
  plotOptions: {
        series: {
            animation: false
        }
  },

关于javascript - 按需更新多个 Highcharts 实例的最佳性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18977112/

相关文章:

javascript - 如何更改 Facebook 分享按钮图标的大小

javascript - 使用ES6语法和动态路径导入模块

javascript - 在 Highchart 中使用逗号和单位格式化数字数据

r - 使用shiny和highcharter开发交互式应用程序

javascript - 尝试在 Bootstrap 中将两个表单并排放置。任何想法如何?

javascript - 遍历多个数组,组合成单个数组,在子数组内维护索引

javascript - 如何在没有 Object.keys() 的情况下遍历对象数组?

c++ - 如何循环直到 == true

java - 如何在循环中列出多维数组值

java - Highchart 使用 Java 离屏生成 SVG