В бесконечном скролле повторяются и пропадают записи при активной ленте
Лента подгружается страницами: GET /feed?offset=0&limit=20, затем offset 20, 40 и так далее. Новые публикации появляются вверху ленты постоянно, лента отсортирована по времени создания по убыванию.
Пользователи жалуются: при долгом скролле одни и те же публикации встречаются дважды, а некоторые не показываются вовсе.
В чём причина и что менять?
- Пока пользователь листает, в начало вставляются новые записи и границы страниц сдвигаются — нужна пагинация по курсору от последнего показанного элемента
- Причина в кеше на клиенте: достаточно очищать список перед подгрузкой очередной страницы
- Причина в параллельных запросах страниц: хватит очереди, пропускающей один запрос за раз
- Нужно увеличить размер страницы: чем реже подгрузка, тем реже пересекаются границы страниц, и при limit=200 проблема уходит сама собой
