angular - 如何在不冻结的情况下处理传单地图上http请求的中大型结果
问题描述
我正在使用 Angular 创建仪表板。我正在调用包含空间数据的 Server PostGIS,以将其可视化到我的传单地图中。当我加载我的页面时,一切正常。
步骤是:
- 定义一个向服务器发出请求的服务;
getDoors(): Observable<any> {
return this.http
.get(this._endpoint+'/api/doors')
.pipe(
tap(_ => console.log('fetched doors')),
catchError(this.handleError('getDoors')),
map(this.extractData)
);
}
- 在我调用的组件中:
this.serverRequest.getDoors().subscribe(res => this.doors = res);
- 为了在我的模板中显示结果,我使用 [1]
<div *ngIf="doors">
<app-map [data]="doors"></app-map>
</div>
..other template component ..
考虑到我们正在谈论 http 调用 [2],我不会取消订阅。
正如预期的那样,一切正常。但是考虑到我的查询的大量结果(约 5000 个结果),在地图上显示它们之前经过几秒钟,页面和其他组件就会冻结。
我会得到什么? 我希望创建我的地图和其他组件,并在可用时添加数据。
参考
[1] https://scotch.io/tutorials/3-ways-to-pass-async-data-to-angular-2-child-components
解决方案
推荐阅读
- docker - goreleaser 用于合并到 master 和用于切割发布的单独流程
- c# - 为什么它不显示我在 DataTable 中分配的 DataGrid 中的值?
- c++ - 如何制作一个 bool 数组来保存二维数组中大于 0 的数字的位置?
- gpu - 如何在 Colab 中获得 V100 GPU?
- java - 图形不会自动移动,并且在按下箭头键时也会复制而不是移动
- perl - perl 对 return 语句的引用和取消引用
- huawei-mobile-services - HMS Push Kit,getToken() 方法在 Android 9 上不工作
- nativescript - Nativescript 6.5 iOS 挂起事件仅在应用再次激活时触发
- java - 如何从不同 PC 的另一个工作区导入 Java 类文件
- php - 导出 mysql 表和 zipArchive