代码之家  ›  专栏  ›  技术社区  ›  Duiz

HealthCask-隐藏轴影响重绘的性能

  •  1
  • Duiz  · 技术社区  · 6 年前

    一段时间以来,我在重新绘制图表时遇到了性能问题

    setData

    当我调试的时候我发现 isDirty

    然后,我试图找到我的哪些元素具有该选项,并认识到只有一个元素具有该选项:

    yAxis.push({
        max: 100,
        min: 0,
        visible: false
    });
    

    这是我在图表上的一些附加数据使用的无形轴

    问题就出在 visible

    当它是假的-它需要很大一部分表演

    isDirty公司 标志或 visible: false

    那么有没有隐藏轴W/O的可能性? isDirty公司 旗帜?

    升级版

    https://jsfiddle.net/q6ntdxsy/8/

    改变第一轴 看得见的 js部分中的标志,以及 会是假的

    1 回复  |  直到 6 年前
        1
  •  0
  •   ppotaczek    6 年前

    在轴渲染之后,内部的“脏”标志被设置为假轴。不可见轴永远不会渲染,因此在可见状态更改之前,此标志将设置为false。如果一个轴是脏的,所有轴都被重绘。

    您可以从Highcharts源代码推断其工作原理: https://code.highcharts.com/highcharts.src.js

    解决方案可以是实验性的覆盖“render”方法,以禁用隐藏轴的“isDirty”标志。

    // Axes
    if (chart.hasCartesianSeries) {
        each(axes, function(axis) {
            if (axis.visible) {
                axis.render();
    
            // Disable 'isDirty' flag for invisible axes
            } else {
                axis.isDirty = false;
            }
        });
    }
    

    https://jsfiddle.net/BlackLabel/yb4qf1s6/