Я пытаюсь реализовать бесконечную прокрутку с помощью Ionic2 и Firebase.AngularFire2 бесконечная прокрутка
Я использую AngularFire2. То, что я хотел бы сделать, это добавить новые элементы в выбранный список и не перезагружать весь список.
let query$:Observable<any> = this.af.database.list(`quests/`, {
query: {
orderByChild: 'date_published',
limitToFirst: this.recentChunkLimit$ //Subject where I push new limit length
}
}).publishReplay(1).refCount();
Однако, когда я запрашиваю список вроде этого, весь список перезагружается каждый раз через WebSockets делая каждое следующее обновление медленнее и медленнее. Вот скриншот вкладки Network websockets: А также я заметил, что запросы выполняются 2 раза для каждого следующего фрагмента (хотя я поместил publishReplay). И это происходит во всех приложениях, где я использовал AngularFire2. Я мог бы кое-что понять. Мне определенно нужно разъяснение.
// ========== Редактировать ============
Теперь, я каким-то образом удалось осуществить то, что я хочу без перезагрузки весь список каждый раз , Не лучшая реализация, но она работает. В принципе, я создал наблюдаемый массив и загружал в него новые значения, подписываясь на следующий наблюдаемый блок (где я также получаю последний элемент для начала). Однако более поздняя проблема все еще остается - на дисплее сокетов я получаю данные, запрошенные 2 раза.
Что вы подразумеваете под общим списком? Вы запросили 5 предметов. Затем вы запросили 10. Первые 5 будут частью 10, которые вы запросили. Разве это не ваше ожидание? – Rexford
Я имел в виду, что весь список запрашивается у firebase, таким образом загружая уже загруженные элементы еще раз.Это ожидаемое поведение, но определенно не желаемое, как для каждого верхнего предела, время загрузки увеличивается. –