Выбор ответа Middle Мобильный system design обновлено

Пагинация ленты на мобильном

Вопрос

Какой подход к пагинации ленты лучше для мобильного клиента?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Курсорная пагинация с подгрузкой заранее (prefetch до конца) и дедупликацией по id. Курсор стабилен к вставкам новых постов, prefetch убирает паузы при скролле, дедупликация защищает от повторов на стыке страниц.

Варианты ответа

  1. Курсорная пагинация с подгрузкой заранее (prefetch до конца) и дедупликацией по idправильный ответ
  2. Загрузить всю ленту одним запросом при старте и дальше листать её локально из базы
  3. Постраничная по номеру страницы: дубли на стыке страниц не появляются, если размер постоянный
  4. Подгрузка только по кнопке «Ещё», чтобы не тратить трафик на непросмотренные посты

Разбор

Курсор стабилен к вставкам новых постов, prefetch убирает паузы при скролле, дедупликация защищает от повторов на стыке страниц. Вся лента одним запросом это трафик и память. Номера страниц сдвигаются при вставках. Кнопка «Ещё» допустима, но хуже бесконечной ленты по вовлечению.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.