Выбор ответа Middle Состояние и данные обновлено
Курсорная пагинация
Вопрос
Почему ленты в мобильных приложениях обычно используют курсорную пагинацию, а не page и limit?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Новые записи сдвигают страницы по смещению, а курсор устойчив к вставкам. Если между запросами страницы 1 и 2 сверху добавилось 3 поста, то по смещению первые 3 поста второй страницы окажутся теми, что уже показаны.
Варианты ответа
- Курсорная пагинация позволяет сразу перейти на 50-ю страницу без загрузки предыдущих
- Новые записи сдвигают страницы по смещению, а курсор устойчив к вставкамправильный ответ
- Сервер не может посчитать смещение больше 100, поэтому длинные ленты не работают
- С курсором не нужен индекс в базе данных, и запросы становятся дешевле
Разбор
Если между запросами страницы 1 и 2 сверху добавилось 3 поста, то по смещению первые 3 поста второй страницы окажутся теми, что уже показаны. Курсор (id или время последнего элемента) говорит «дай после этого», и вставки не мешают. Минус курсора как раз в том, что нельзя прыгнуть на произвольную страницу. Индекс нужен в обоих случаях, и смещения в базе бывают любыми (просто большие смещения медленные).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.