Выбор ответа Middle Состояние и данные обновлено

Курсорная пагинация

Вопрос

Почему ленты в мобильных приложениях обычно используют курсорную пагинацию, а не page и limit?

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

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

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

Коротко

Правильный ответ: Новые записи сдвигают страницы по смещению, а курсор устойчив к вставкам. Если между запросами страницы 1 и 2 сверху добавилось 3 поста, то по смещению первые 3 поста второй страницы окажутся теми, что уже показаны.

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

  1. Курсорная пагинация позволяет сразу перейти на 50-ю страницу без загрузки предыдущих
  2. Новые записи сдвигают страницы по смещению, а курсор устойчив к вставкамправильный ответ
  3. Сервер не может посчитать смещение больше 100, поэтому длинные ленты не работают
  4. С курсором не нужен индекс в базе данных, и запросы становятся дешевле

Разбор

Если между запросами страницы 1 и 2 сверху добавилось 3 поста, то по смещению первые 3 поста второй страницы окажутся теми, что уже показаны. Курсор (id или время последнего элемента) говорит «дай после этого», и вставки не мешают. Минус курсора как раз в том, что нельзя прыгнуть на произвольную страницу. Индекс нужен в обоих случаях, и смещения в базе бывают любыми (просто большие смещения медленные).

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

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