Если кто-то хочет разбить на страницы результаты из источника данных, который поддерживает разбиение на страницы, мы должны перейти к процессу:
- определение размера страницы - это количество результатов, отображаемых на странице;
- извлекает каждую страницу, запрошенную пользователем, используя смещение = номер страницы (на основе 0) * размер страницы
- показать результаты выбранной страницы.
Все это работает просто отлично, не принимая во внимание тот факт, что операция может повлиять на бэкэнд-систему, которая портит пагинацию. Я говорю о том, что кто-то вставляет данные между выборками страниц или удаляет данные.
page_size = 10;
get page 0 -> results from 0 to 9;
user inserts a record that due to the query being executed goes to page 0 - the one just shown;
get page 1 -> results from 10 to 19 - the first results on the page is the result on the old page 0.
Описанное поведение может вызвать замешательство у зрителя. Знаете ли вы какие-либо практические решения для решения этой проблемы.