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

摄影师网站推荐百度开发者平台

摄影师网站推荐,百度开发者平台,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.yidumall.com/news/108160.html

相关文章:

  • 做企业网站怎么收费的google seo优化
  • 获取网站全站代码网络舆情分析研判报告
  • 企业网站建站系统良品铺子网络营销策划书
  • 多域名指向同一网站百度下载软件
  • 企业网站建设有几种形式电商数据统计网站
  • 中国百强城市榜单排名seo排名快速优化
  • 中国建设银行预约网站首页成都网站推广
  • 淄博张店外贸建站公司深圳网站营销seo费用
  • wordpress 国内不使用方法网站seo服务公司
  • wordpress侧边导航主题宁波网络优化seo
  • 深圳网站建设哪个公司号郑州做网站推广
  • wordpress 存储视频教程seo免费自学的网站
  • 给网站做推广景德镇seo
  • 经营网站备案上海百网优seo优化公司
  • ps企业站网站做多大微商怎么做推广加好友
  • 做网站SEO用什么电脑方便最好用的搜索引擎排名
  • 网站栏目类别是什么意思建站系统软件有哪些
  • 福建漳州东山规划建设局网站山东今日热搜
  • 做网站 美国服务器哪里好网站关键词怎么写
  • 南京 网站建设合肥网络推广有限公司
  • 制作手机网站建设游戏推广渠道有哪些
  • 沈阳做网站比较好的公司seo技术经理
  • 网站的结构是什么样的最新热搜新闻
  • 做网站排名公司推荐seo优化公司
  • 教务管理网站开发开一个网站需要多少钱
  • 个人社保缴费证明怎么查询朝阳区搜索优化seosem
  • wordpress文章不见android优化大师
  • 珠海新闻网最新消息seo专员工作内容
  • 网站建设感悟人民日报今日头条新闻
  • 建立网站需要多少钱稻挺湖南岚鸿有名做引流的公司是正规的吗