2012-04-11 2 views
0

У меня есть некоторые результаты, полученные через WS-запросы от нескольких разных поставщиков, затем я собираю и заказываю результаты, и я показываю их пользователю.Результаты поиска pagination, best practice

Число результатов находится где-то между 0 и 60-70, со средним значением 10-20. Моя проблема: как обращаться с разбивкой по страницам? Я пытаюсь выяснить, что является лучшим решением для моей ситуации, потому что я нашел несколько способов сделать это ... и я уверен, что мне не хватает других хороших (возможно, лучших) решений ... Решения i думал до сих пор:

1) Создание для каждой страницы (15 результатов) нового агрегированного поиска через WebServices. Это глупо, но поскольку среднее число результатов составляет 10-20, разбиение на страницы часто не используется.

2) Сохранение в базе данных все результаты как временный кэш, а затем показать 15 результатов на время

3) Загрузка все результаты на одной странице, но показывает только 15 страницы с помощью постраничной плагин Jquery (клиентская сторона?)

ответ

1

Это зависит от того, насколько велика 1 результат, но я бы предпочёл не разбивать на страницы, если у вас есть максимальные 60-70 результатов, особенно если это не так часто. Улучшенный пользовательский интерфейс.

+0

У меня есть только 60-70 результатов, но каждый результат может занимать от нескольких строк до полуэкрана, поэтому страница результатов может быть очень длинной с результатами более 10-15 – alessiop86

1

Вы действительно уверены, что когда-нибудь веб-службы не начнут возвращать гораздо больше результатов? Что делать, если когда-нибудь в одном из них есть ошибка, где он случайно возвращает вам 50 000 экземпляров того же результата? В каждом из ваших решений:

  1. Большие, чем ожидались, количество результатов приведет вас к спаму веб-службам с повторными запросами на одни и те же результаты, как и страницы пользователей через них.

  2. Ожидается, что большее количество результатов в конечном итоге займет место в вашей базе данных. Кроме того, в веб-приложении, как вы узнаете, когда очистить кеш?

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

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

Если вы действительно уверены, что результаты не более 60-70 будут когда-либо возвращены и/или что ваши пользователи никогда не захотят получить действительно большое количество результатов, вы можете комбинировать вариант 3 с колпачком на количество результаты вы вернетесь.

Даже в худшем случае, когда веб-службы возвращают ошибочные/неожиданные результаты, вы можете обрезать их до первого так много, отправить их в браузер и разбивать их на страницы с помощью JavaScript.