g2内存泄漏

  • 一、背景

使用ng-alain(1.1.5)框架开发的项目中,在表格中使用集成的g2(3.4.8)插件。加上实时刷新功能时,出现内存泄漏。 

<simple-table [data]="data"
                  [columns]="columns"
                  [loading]="loading">
      <ng-template st-row="riskTrend" let-i let-index="index">
        <g2-mini-area animate="false" color="rgba(0,224,230,0.2)" height="46"
                      borderWidth="1" borderColor="#00E0E6"
               [data]="formateData(i.max_normriskscore)" line="true">
        </g2-mini-area>
      </ng-template>
      <ng-template st-row="normriskscore" let-i>
        {{util.toThousands(i['max(normriskscore)'])}}
      </ng-template>
    </simple-table>
  • 二、解决方案

1、定位过程:

1)在谷歌浏览器中打的包里,有一个对象一直不释放内存,这个对象是g2插件的。

2)试着把 g2-mini-area删掉,从新打包,没什么变化。

3)重新加上g2-mini-area后,又发生内存泄漏,此时确定是g2引起的。

2、解决方法:

不使用g2插件,改用echarts来实现表格中的图表,此时内存泄漏解决。

<simple-table [data]="data"
                  [columns]="columns"
                  [loading]="loading">
      <ng-template st-row="riskTrend" let-i let-index="index">
        <app-fwchart [seriesName]="'风险值'" [type]="'line'"
                     [height]="45" [details]="true" [chartStyle]="{margin: '0px'}"
                     [grid]="{left: 0, right: 5,bottom:0,top: 0,xAxis:false,yAxis:false}"
                     [data]="formateData(i.max_normriskscore)" [areaStyle]="true"
                     [nameKey]="'x'" [valueKey]="'y'" [timeType]="''">
        </app-fwchart>
      </ng-template>
      <ng-template st-row="normriskscore" let-i>
        {{util.toThousands(i['max(normriskscore)'])}}
      </ng-template>
    </simple-table>

猜你喜欢

转载自blog.csdn.net/ligaoming_123/article/details/86527444