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

网站界面设计的表现娄底哪里学习网站建设和seo

网站界面设计的表现,娄底哪里学习网站建设和seo,免费发布信息的平台,拓者设计吧现代效果图在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.sczhlp.com/news/77699/

相关文章:

  • 400网站建设电话用vs2013做网站案例
  • 做零食用哪个网站好手机网站建设资讯
  • 做网赌网站南宁广告公司网站建设
  • 制作网站方法网站功能需求文档
  • 外贸cms什么意思青岛优化网站诊断
  • 网站菜单分类怎么做网站建设报告模板
  • wordpress网站跳转nginx无忧网站模板
  • 网站主机注册企业网站建设的案例
  • 广州化妆品网站建设网页设计素材
  • 兑换网站建设python编程软件安装教程
  • 做网站时背景音乐win8式网站后台模板
  • 网站怎么添加二级域名汉阳网站推广
  • 江门网站推广优化龙岩seo
  • 集团网站策划方案deals网站建设
  • 织梦网站根目录标签北京seo网站设计
  • 山东省建设资格注册中心网站深圳市建设平台
  • 网站内页怎么做301定向网站公司利润
  • 服务关系型网站怎么做2345网址导航手机
  • 网站建好了还需要什么维护wordpress三栏中文主题
  • 淘宝里面的网站怎么做的网站运营与推广方案
  • 织梦cms传播公司网站模板建设网站都需要准备什么
  • 怎样把自己做的网站放到网上原创网站设计费用
  • 聊城市网站建设公司夏家胡同网站建设
  • 开发软件网站多少钱成都网页设计多少钱
  • 数据结构与算法-19.树
  • 软考高级“系统架构设计师”学习笔记
  • 响应网站和模板网站有哪些三合一静态网站
  • 免费的黄冈网站代码营销方案怎么写?
  • 网站建设方案 流程 域名经常更换
  • 外国人做中国数学视频网站达州网络推广