Я получаю наблюдаемый список объектов из firebase, а затем подписаться на него (через async pipe) в моем компоненте. Пока все работает отлично. Список только перезагружается, когда что-то меняется.Данные кэширования данных о вспышках не должны дублировать запросы. Angular2 with angularfire2
//getting observable list from firebase
//ArticlesService
public getAllArticles(limit:number = 100):Observable<Article[]>
{
return this.af.database.list("/articles/", {
query: {
limitToFirst: limit
}
}).map((arts) => {
return arts.map(art => {
return Article.unpack(art); //creating an Article object
})
})
}
//ArticlesComponent
ngOnInit() {
this.articles$ = this.artService.getAllArticles();
}
<app-articles-list [articles]="articles$ | async"></app-articles-list>
Однако, когда я использую Angular2 маршрутизатор и перемещаться из маршрута, а затем обратно - кажется, что все-таки данные загружаются еще раз от firebase, который создает задержку рендеринга и трафика накладные расходы.
Я предполагаю, что это происходит, потому что, когда я перемещаюсь, а затем обратно, подписка воссоздается и запрашиваются данные, как если бы она еще не была загружена.
Итак, я думал, что было бы способом избежать такого поведения? Может быть кеширование, может быть что-то другое. На данный момент не совсем уверен.