问题复现
<th rowspan="2" [nzSortFn]="fnCompare('totalTaskhour')" [nzAlign]="calendarDetailTableAlign" >{{ "任务总时长" | translate }}</th>
<th rowspan="2" [nzSortFn]="fnCompare('gap')" [nzAlign]="calendarDetailTableAlign" >{{ "Gap" }}</th>
fnCompare = (propertyName) => (a,b) => a[propertyName] - b[propertyName]
该表格在modalService创建出的弹窗中,时间久了之后发现关闭弹窗会卡顿很久,于是开启性能分析
发现大量的时间都用来销毁依赖了
解决
于是经过排查,发现绑定一个动态的排序函数会造成内存越堆越大,改为具体的排序函数就解决了该问题
<th rowspan="2" [nzSortFn]="totalTaskhourFn" [nzAlign]="calendarDetailTableAlign" >{{ "任务总时长" | translate }}</th>
<th rowspan="2" [nzSortFn]="gapFn" [nzAlign]="calendarDetailTableAlign" >{{ "Gap" }}</th>
// fnCompare = (propertyName) => (a,b) => a[propertyName] - b[propertyName]
gapFn = (a,b) => a.gap - b.gap
totalTaskhourFn = (a,b) => a.totalTaskhour - b.totalTaskhour