Каковы некоторые методы для обработки нумерации длинных списков? - PullRequest
0 голосов
/ 29 января 2009

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

В большинстве случаев люди просто выполняют SQL-запрос с использованием LIMIT, но это не позволяет отслеживать, где заканчивается страница 1 и начинается страница 2.

Я полагаю, что это можно сделать, отслеживая идентификатор последней просмотренной записи или что-то в этом роде.

Ответы [ 2 ]

3 голосов
/ 29 января 2009

Я думаю, что большинство пользователей привыкли к такому поведению и ожидают, что это произойдет. Когда они переходят на следующую страницу и видят, что элемент в конце страницы, на которой они только что находились, является первым элементом текущей страницы, они, вероятно, поймут, что это потому, что был добавлен новый элемент. Я знаю, что я зависел от этого поведения как пользователь прежде, чтобы узнать, когда новый контент был добавлен при просмотре страниц.

Так что я считаю, что вам не нужно этого делать.

1 голос
/ 29 января 2009

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

Хитрость заключается в том, чтобы сохранить (обычно в скрытых переменных) достаточное количество ключевой информации, чтобы расположить список непосредственно перед элементом 1 и сразу после последнего элемента на странице, которую вы просматриваете. Затем ссылки на предыдущую и следующую страницу предоставляют эту информацию при отправке. Фактически вы сохраняете клавиши «предыдущая страница» и «следующая страница». Это работает интуитивно для вставок и удалений.

Следует иметь в виду, что обновление на странице 1 (при условии, что, как и в случае SO первый список самых новых элементов) должно либо (а) активировать «предыдущую» ссылку, если она была скрыта, либо (б) обновить список сверху, включая добавленные элементы. Другими словами, «обновить» всегда повторно отображает страницу от первого элемента включительно, но если первый элемент на странице был также первым элементом в списке и теперь есть новые элементы, он отображается повторно с начала списка. В наших списках у нас обычно есть стандартные ссылки для «первой страницы», «предыдущей страницы», «обновления», «следующей страницы» и «последней страницы».

Альтернатива для просмотра новых элементов состоит в том, чтобы всегда иметь предыдущую ссылку, и она создает резервную копию на меньшую часть полной страницы или в верхней части списка - и именно так пользователь видит новые элементы (но я предпочитаю скрывать / отключать предыдущий / следующий, когда нет пунктов предыдущий и / или следующий).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...