2012-04-11 31 views
0

Ich habe einige Ergebnisse erhalten durch WS-Anfragen von ein paar verschiedenen Anbietern, dann sammle ich und bestelle die Ergebnisse und ich zeige sie beim Benutzer.Suchergebnis Paginierung, Best Practice

Die Anzahl der Ergebnisse liegt irgendwo zwischen 0 und 60-70, mit einem Durchschnitt von 10-20. Mein Problem ist: Wie funktioniert die Paginierung? Ich versuche herauszufinden, welche die beste Lösung für meine Situation ist, weil ich mehrere Möglichkeiten gefunden habe, dies zu tun ... und ich bin sicher, dass ich andere gute (wahrscheinlich bessere) Lösungen vermisse ... Die Lösungen i dachte bis jetzt:

1) Machen Sie für jede Seite (15 Ergebnisse) eine neue aggregierte Suche durch die WebServices. Das ist dumm, aber da die durchschnittliche Anzahl der Ergebnisse 10-20 ist, wird die Seitenumbruch oft nicht verwendet.

2) Speicher in der Datenbank all Ergebnisse als temporäre Cache und dann 15 Ergebnisse zum Zeitpunkt

3) zeigen alle in einer einzigen Seite der Ergebnisse Loading aber 15 nur eine Seite zeigt, die eine Paginierung Plugin JQuery mit (Client-Seite?)

Antwort

1

Es hängt davon ab, wie groß 1 Ergebnis ist, aber ich würde keine Seitenumbruch bevorzugen, wenn Sie maximal 60-70 Ergebnisse haben, vor allem wenn es nicht oft ist. Bessere Benutzererfahrung

+0

ich habe nur 60-70 Ergebnisse, aber jedes Ergebnis kann von wenigen Zeilen auf die Hälfte Bildschirm, so dass die Ergebnisse Seite kann sehr lang sein mit mehr als 10-15 Ergebnisse – alessiop86

1

Sind Sie wirklich sicher, dass die Webservices eines Tages nicht mehr viele Ergebnisse liefern werden? Was, wenn es eines Tages einen Fehler in einem von ihnen gibt, bei dem es versehentlich 50.000 Kopien desselben Ergebnisses an Sie zurückgibt? In jedem Ihrer Lösungen:

  1. Ein größere als erwartete Anzahl von Ergebnissen führen würden Sie den Web-Service mit wiederholten Anfragen für die gleichen Ergebnisse, wie Anwender durch sie spammen.

  2. Eine größere Anzahl von Ergebnissen als erwartet wird vorübergehend Speicherplatz in Ihrer Datenbank belegen. Wie können Sie in einer Webanwendung wissen, wann der Cache gelöscht werden soll?

  3. Eine größere Anzahl von Ergebnissen als erwartet wird als riesige Seite im Browser des Benutzers angezeigt, die möglicherweise nicht richtig dargestellt wird, bis das ganze heruntergeladen ist.

Ich mag Option wirklich 3. Der Caching an der Stelle erfolgt, wo die Daten gesucht, es gibt keine redundanten Zugriffe auf die Web-Dienste und Paging wird für die Benutzer super schnell sein.

Wenn Sie wirklich sicher sind, dass nicht mehr als 60-70 Ergebnisse zurückgegeben werden und/oder dass Ihre Benutzer nie eine wirklich große Anzahl von Ergebnissen wünschen, können Sie Option 3 mit einer Obergrenze für die Anzahl kombinieren Ergebnisse werden Sie zurückgeben.

Selbst im schlimmsten Fall, in dem die Webservices fehlerhafte/unerwartete Ergebnisse zurückgeben, können Sie sie auf die ersten so vielen reduzieren, sie an den Browser senden und sie dort mit JavaScript paginieren.