angular - 比较两个大对象的角度会使渲染速度变慢
问题描述
我有两个从 RTDB 获取的 observables。一个是问题(500 项),另一个是答案(2000 项)。
我正在使用嵌套 *ngFor 来比较和显示问题和相应的答案。它工作正常,但渲染缓慢并使整个应用程序滞后。
<ion-slide *ngFor="let q of questions | async ">
<ion-card>
<ion-card-header>{{q.label}}</ion-card-header>
<ion-card-content >
<div *ngFor="let a of answers | async">
<ion-item *ngIf="q.idWeb == a.question_id">
<ion-label>{{a.value}}</ion-label>
<ion-radio value="{{a.good}}"></ion-radio>
</ion-item>
</div>
</ion-card-content>
</ion-card>
</ion-slide>
不幸的是,我无法更改 firebase 中的数据架构。我只需要处理这个。请提出一些解决方案来提高性能。
解决方案
您可以使用 Angular 团队提供的 Common Developpement Kit。
如果您还没有安装 CDK,请先安装:
npm i @angular/cdk
安装后,您可以按照本指南实现简单的虚拟滚动。
这将仅渲染视口中的项目,从而加快渲染速度。
推荐阅读
- django - 在 PyCharm 中为行为步骤定义指定另一个位置
- scala - 从 Scala 中的任意数组数据中获取 Spark DataFrame 的最简单方法是什么?
- java - 带有错误时间戳的 logback 日志记录
- c - 将结构保存到文本文件并将其下载回标准输出的 C 问题
- android - 如何在 android studio 中修复 Android manifest.xml 以启用索引?
- jquery - 选中复选框时在表单上添加一组单选按钮
- python-3.x - 使用 Spacy 训练 NER 从简历中提取技能。过渡中的 U-entity_name 是什么意思
- oracle - 触发值中的子查询
- identityserver4 - 在哪里存储客户端密码?
- solr - 如何在 Solr 中管理排名系统