【发布时间】:2021-07-25 19:25:26
【问题描述】:
我有数百个元素可以从 MongoDB 数据库中获取并在前端打印出来。 将所有内容提取到单个请求中可能会降低性能,因为它在主体响应中携带大量有效负载。 因此,我正在寻找一种解决方案,将我的 Angular 请求拆分为多个,并且约束要同时进行。
例子:
蒙古数据库 集合:元素(_id、名称、孩子、...) 文档:10000+
但我们只需要 ~100-500 个元素
角度:
const observables = [];
const iteration = 5, idParent = 'eufe4839ffcdsj489483'; // example
for (let i = 0; i < iteration; i++) {
observables.push(
this.myHttpService.customGetMethod<Element>(COLLECTION_NAME, endpoint, 'idParent=' + idParent + '&limit=??')); // url with query
}
forkJoin(observables).subscribe(
data => {
this.elements.push(data[0]);
this.elements.push(data[1]);
},
err => console.error(err)
);
我使用 forkJoin 是因为我需要同时请求以获得更好的性能。 想法是向后端发送多个请求,使用不同的限制参数值,最后将整组元素放入数据对象中。 唯一的目的是拆分请求以避免由于负载体的大小而导致的大延迟以及可能出现的错误。
如何继续使用给定的堆栈来执行此操作?我想避免使用 websockets。
【问题讨论】:
标签: javascript angular mongodb performance http