透视表渲染10w+的单元格内存持续飙升(可能内存泄漏)浏览器崩溃
Azhi-ux opened this issue · comments
🏷 Version
Package | Version |
---|---|
@antv/s2 | 2.0.0-next.19 |
Sheet Type
- PivotSheet
🖋 Description
![image](https://private-user-images.githubusercontent.com/57614070/329515998-f51d6548-d06b-40e6-8dce-f4c131786c4b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI0NzQyODksIm5iZiI6MTcyMjQ3Mzk4OSwicGF0aCI6Ii81NzYxNDA3MC8zMjk1MTU5OTgtZjUxZDY1NDgtZDA2Yi00MGU2LThkY2UtZjRjMTMxNzg2YzRiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODAxVDAwNTk0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg3MjdjNTU2MDViMTVmMzY1NWIxMTU0ZGNmYzMxY2EyZGRkZjI0NDc1NDI0MDNiYmJlMTI5ZjM4YzY0MjAwZmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.UT5Uyc0WOvFbwADTcTbXyHMS7Y-ZDbb23rV17911F6I)
而且拖拽列头依然会执行到这块方法;内存持续飙升;
还有官网事例
⌨️ Code Snapshots
🔗 Reproduce Link
🤔 Steps to Reproduce
😊 Expected Behavior
期望能关注内存占用的问题
😅 Current Behavior
💻 System information
Environment | Info |
---|---|
System | Mac: 14.1 |
Browser | Chrome: 124.0.6367.92 |
这里是因为每一次重新布局都会重新绘制文本,计算行头的高度,我这边临时的解决方案是覆写 getRowNodeHeight
方法,可以参考下:
import { PivotFacet } from "@antv/s2";
export class PivotFacetSetter extends PivotFacet {
constructor(spreadsheet) {
super(spreadsheet);
}
// 自定义行头节点高度
getRowNodeHeight() {
// ...
return this.spreadsheet.options.style?.rowCell?.height || 30;
}
}
在 options
中:
const options = {
facet: sheetType === 'pivot' ? (spreadsheet) => new PivotFacetSetter(spreadsheet) : null,
}
这里是因为每一次重新布局都会重新绘制文本,计算行头的高度,我这边临时的解决方案是覆写
getRowNodeHeight
方法,可以参考下:import { PivotFacet } from "@antv/s2"; export class PivotFacetSetter extends PivotFacet { constructor(spreadsheet) { super(spreadsheet); } // 自定义行头节点高度 getRowNodeHeight() { // ... return this.spreadsheet.options.style?.rowCell?.height || 30; } }在
options
中:const options = { facet: sheetType === 'pivot' ? (spreadsheet) => new PivotFacetSetter(spreadsheet) : null, }
好的,感谢大佬,我试试🙏