当前位置: 首页 > news >正文

济南地区做公司网站的公司国内专业seo公司

济南地区做公司网站的公司,国内专业seo公司,做网站时管理员权限的页面,wordpress 作品集网站在angular中,MatTable构建简单,使用范围广。但某些时候会出现卡顿 卡顿情景: 1:一次性请求太多的数据 2:一次性渲染太多数据,这会花费CPU很多时间 3:行内嵌套复杂的元素 4:使用过多的…

在angular中,MatTable构建简单,使用范围广。但某些时候会出现卡顿

卡顿情景:

1一次性请求太多的数据

2一次性渲染太多数据,这会花费CPU很多时间

3行内嵌套复杂的元素

4使用过多的ngStyle或者ngClass。或者一些额外的class

        import { MatTableDataSource } from '@angular/material/table';    
...const data: IDemoRow[] = [];for (let i = 0; i < 8000; i++) {data.push({studentId: `studentId-${i + 1}`,name: `name-${i}`,className: `className-${i}`,age: i,address: `address-${i}`,studySubjects: ['studySubjects-1','studySubjects-2','studySubjects-3','studySubjects-4','studySubjects-5','studySubjects-6',],grade: 4});}this.dataSource = new MatTableDataSource(data);

第一次渲染会卡顿,拖动滚动条时会出现空白现象。

提升办法:

1分页

使用MatPaginator对数据进行分页

    import { MatPaginator } from '@angular/material/paginator';
...@ViewChild(MatPaginator) paginator: MatPaginator;
...ngAfterViewInit() {this.dataSource.paginator = this.paginator;}
<table mat-table [dataSource]="dataSource">...
</table>
<mat-paginator[pageSizeOptions]="[13, 50, 200]"showFirstLastButtons>
</mat-paginator>

效果如下:

2:尽可能少用或不用ngStyle和 ngClass。无效的css及时清理。ngStyle不仅导致性能问题。还会使样式无法被覆盖。因此要慎用

// less
.grade-background {background: #a1bcd6;
}
.grade-color {color: #37474f;
}// html
<table mat-table [dataSource]="dataSource">...<ng-container matColumnDef="grade"><th mat-header-cell *matHeaderCellDef class="class-unnecessary"> Grade </th><td mat-cell *matCellDef="let element"class="table-cell grade-color class-unnecessary-test"[ngClass]="{'grade-background' : element.grade === 3}"[ngStyle]="{'color': '#DB5C5C'}">{{element.grade}}</td></ng-container>...
</table>

第一次渲染会卡顿,且ngStyle的值未被覆盖

3:使用trackBy,trackBy是angular提供的函数,来告诉angular怎么跟踪数组里的项目。这会减少不必要的DOM的删除和重建

trackByFunction(index: number, row: IDemoRow): string {return row.studentId;
}<table mat-table [dataSource]="dataSource"[trackBy]="trackByFunction">...
</table>
<mat-paginator[pageSizeOptions]="[13, 50, 200]"showFirstLastButtons>
</mat-paginator>

4:但是对于更复杂的表的使用,比如分组管理数据。打开或者关闭某个组的时候,还要操作DOM,那么在以上几种方法的基础上可能还会卡顿

这时候需要利用interval分批操作DOM,能减少卡顿问题

intervalH = window.setInterval(() => {...if (...) {window.clearInterval(intervalH);intervalH = undefined;}...
}, interval);

以上就是几种常用的优化方法。

http://www.tj-hxxt.cn/news/33015.html

相关文章:

  • 重庆南川网站制作公司电话上海seo网站优化
  • 服务好的网站制作建设seo技术建站
  • 商城网站系统创建自己的网址
  • 网站维护中要多久才能重新进入百度点击快速排名
  • 做网站学cdr吗南京百度
  • 优化网站建设公司免费拓客软件
  • 南昌专业的企业网站开发公司百度站长工具如何使用
  • 网站制作培训课程网络舆情监测与研判
  • 做优化网站建设近期国家新闻
  • 西安市做网站公司竞价排名营销
  • t恤在线设计网站免费外链网站
  • 谁家网站用户体验做的好无代码系统搭建平台
  • 企业网站用什么做二级域名分发平台
  • 北京网站建设公司现状青岛seo网站关键词优化
  • 黄石做网站网页设计主题参考
  • 抖音粉丝购买网站优化大师免费版下载
  • 能接做网站的活的网站群排名优化软件
  • 标杆建设网站外贸接单平台哪个最好
  • my77738免费域名查询郑州网站排名优化外包
  • 哪个网站教做西餐双滦区seo整站排名
  • seo网站分析报告google关键词排名优化
  • 景区网站的建设公司站长之家的作用
  • 哪个网站可以哪些企业做哪些产品网店推广培训
  • 江苏连云港网站制作公司重庆森林台词
  • 做pc端的网站首页尺寸是多少郑州网站推广优化公司
  • 上海建设网站制谷歌seo需要做什么的
  • 照片制作视频软件app武汉seo人才
  • 无锡企业网站seo上海搜索引擎优化公司
  • 设计网站b成都网站推广公司
  • 案例模板我的网站百度推广电话销售话术