Мы делаем это (по вашему запросу) поведение для всех наших веб-интерфейсов, разбитых на страницы. (Я на самом деле просил об этом в SO, и он отклонился - но я считаю, что текущая репагинация раздражает и неожиданна - я ненавижу нажимать «next» и иметь первые n элементов последними из предыдущей страницы).
Хитрость заключается в том, чтобы сохранить (обычно в скрытых переменных) достаточное количество ключевой информации, чтобы расположить список непосредственно перед элементом 1 и сразу после последнего элемента на странице, которую вы просматриваете. Затем ссылки на предыдущую и следующую страницу предоставляют эту информацию при отправке. Фактически вы сохраняете клавиши «предыдущая страница» и «следующая страница». Это работает интуитивно для вставок и удалений.
Следует иметь в виду, что обновление на странице 1 (при условии, что, как и в случае SO первый список самых новых элементов) должно либо (а) активировать «предыдущую» ссылку, если она была скрыта, либо (б) обновить список сверху, включая добавленные элементы. Другими словами, «обновить» всегда повторно отображает страницу от первого элемента включительно, но если первый элемент на странице был также первым элементом в списке и теперь есть новые элементы, он отображается повторно с начала списка. В наших списках у нас обычно есть стандартные ссылки для «первой страницы», «предыдущей страницы», «обновления», «следующей страницы» и «последней страницы».
Альтернатива для просмотра новых элементов состоит в том, чтобы всегда иметь предыдущую ссылку, и она создает резервную копию на меньшую часть полной страницы или в верхней части списка - и именно так пользователь видит новые элементы (но я предпочитаю скрывать / отключать предыдущий / следующий, когда нет пунктов предыдущий и / или следующий).