- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的项目中使用 Angular Material ,并且我使用 Mat-Table 来渲染每个表 1000 个产品/行。当将表的分页(我们使用后端分页)更改为 1000 行时,性能变得非常慢,我什至无法在文本框中书写。
我试图调试这个问题,所以我将日志放在一个列模板上,这样我就可以看到渲染是如何工作的。
即使我将鼠标悬停在表格标题上,我也看到它重新渲染所有行。是否有可能控制变化检测就像ChangeDetectionStrategy.OnPush
最佳答案
不确定这是否对您的情况有帮助,因为没有代码,但我们发现如果在设置数据源分页器之前设置了大型数据集,MatTable 的加载速度会非常慢。
例如 - 这需要几秒钟来呈现...
dataSource: MatTableDataSource<LocationItem> = new MatTableDataSource();
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
ngOnInit() {
this.dataSource.data = [GetLargeDataSet];
}
ngAfterViewInit() {
this.dataSource.sort = this.sort;
this.dataSource.paginator = this.paginator;
}
...但这很快
ngOnInit() {
// data loaded after view init
}
ngAfterViewInit() {
this.dataSource.sort = this.sort;
this.dataSource.paginator = this.paginator;
/* now it's okay to set large data source... */
this.dataSource.data = [GetLargeDataSet];
}
顺便说一下,我们只是在第二次访问组件时才发现这个问题,因为来自服务器的大型数据集正在缓存中,并且在第二次访问组件时立即可用。如果您想将该代码保留在 ngOnInit 函数中,另一种选择是将 .delay(100) 添加到您的可观察对象中。
无论如何,这可能对您的情况有帮助,也可能没有帮助。
关于1000 行中的 Angular 6 MatTable 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283659/
我一直在尝试应用多列过滤,即列标题中的文本输入将仅过滤列的内容。到目前为止,我已经能够通过覆盖 filterPredicate 的 MatTableDataSource 但是一旦我覆盖了跨列的默认过滤
我有一个 MatTable,它实现了由 Angular Material 的 documentation 指示的选择。 一切正常,进行选择等;但我在想是否可以应用某种排序,以便我可以对 DataSou
目前我已经构建了一个具有可扩展行的 MatTable: 和行: 可扩展行附有动画: animations:
我的数据源有问题,因为我需要在表标题中显示 selectAll 复选框。 当我尝试 console.log 数据源时,它返回一个空数组,并且 dataSource.data-length 返回零。 我
我的数据源有问题,因为我需要在表标题中显示 selectAll 复选框。 当我尝试 console.log 数据源时,它返回一个空数组,并且 dataSource.data-length 返回零。 我
我有一个 Angular Material 表,它使用 detailRow 指令将细节/同级相邻行插入到表行。 StackBlitz 我想给它一个外观,好像该行正在展开或折叠,所以我向它添加了几个图标
由于某些原因,设置 height:100% 不起作用。 关于如何仅将给定单元格(红色单元格)扩展到 100% 行高的任何想法? Stackblitz 适合您 https://stackblitz.co
在我来到这里之前,我已经为这个问题苦苦思索了好一阵子。本质上,我有一个使用动画创建详细信息行的 Angular Material 表。当表排序时,它会重新排列数据。在该过程中,一些详细信息行会过渡到无
我在我的项目中使用 Angular Material ,并且我使用 Mat-Table 来渲染每个表 1000 个产品/行。当将表的分页(我们使用后端分页)更改为 1000 行时,性能变得非常慢,我什
我有 MatTable,我想使用我从用户 input 存储的 values 进行过滤 我能够检查该值是否匹配数据,但我不知道如何在不使用 filterPredicare 的情况下过滤表格,因为使用另一
我一直在尝试使用通过订阅相应服务返回的一系列产品。 在列表或类似的东西上显示对象属性时它工作得很好,但我一直在努力使用 Material 组件数据表。 我尝试通过使用 products 数组作为参数实
我是一名优秀的程序员,十分优秀!