Ist es besser, eine große Abfrage durchzuführen und mit jquery zu filtern, oder kleinere Abfragen durchzuführen?

8

Ich schreibe meine erste Webseite mit php / mysql und jquery. Für den nächsten Teil wird der Benutzer Filter und Sortierungen anwenden, um bestimmte Elemente (wie eine erweiterte Suche, Art von) zu finden, und es wird auch ein Suchfeld geben. Ich möchte, dass die Daten die Änderung widerspiegeln, sobald ein Checkbox-Filter geändert wird (derzeit habe ich einen Test-Ajax-Aufruf ohne Datenbankabfrage, um dies zu tun, der gut funktioniert).

Wäre es besser, die Abfragezeichenfolge neu zu formulieren und die Daten jedes Mal abzufragen, wenn sich ein Filter ändert, oder eine große Abfrage durchzuführen und die Ergebnisse abhängig von den Filtern zu filtern?

Vorläufig wird die Anzahl der Datensätze niedrig sein, aber es ist möglich, in die Tausende zu wachsen.

    
xdumaine 30.07.2011, 19:33
quelle

2 Antworten

7

Ich würde sagen, dass die Abfrage nur auf Basis der Daten erstellt wird, die der Benutzer ausgewählt hat, einfach weil, wenn die Daten groß und unhandlich werden, es albern wäre, das alles an den Client zu senden. Wenn Sie darüber nachdenken, wäre das für die Leistung zweifach schädlich:

  1. Großer Daten-Download auf den Client.
  2. JavaScript muss die Ergebnisse verarbeiten (sortieren / filtern) und anzeigen, wonach der Benutzer gefragt hat.

Dies ist ein Klacks, in meinen Büchern. Am Ende müssen Sie Ihre Lösung so umarbeiten, dass sie mit der Größe Ihrer Datenbank skaliert wird, was Sie nicht möchten.

Der Server ist gut in der Handhabung von Abfragen und Sortierung und Filterung durch LKW-Ladungen von Daten. Das ist nicht wirklich etwas, das Sie auf der Clientseite tun sollten, wenn Sie die Wahl haben.

    
karim79 30.07.2011, 19:47
quelle
1

In diesem Fall würde ich Ajax-Aufrufe vorschlagen, um die gefilterte Information zu erhalten. Sie können auch die Anzahl der angezeigten Optionen einschränken. Anstatt Tausende von Optionen rendern zu müssen (was zeitraubend sein könnte), könnten Sie Ihre Abfrage auf maximal 25, 50 oder 100 Optionen beschränken. Das spart Zeit (weniger Informationen zum Abrufen, weniger Arbeit für die Serverseite, schnellere Datenübertragung und schnellere clientseitige Operationen aufgrund der geringeren Menge. Und Ihre Benutzer können die Filterung weiterhin verwenden, um die benötigten Informationen zu erhalten.

Wenn die Anzahl der Datensätze wahrscheinlich niedrig bleibt (Dutzende von Datensätzen anstelle von Tausenden), könnte es schneller sein, clientseitige Filterung zu implementieren, ohne Ajax zu verwenden. Aber dann müssen Sie einen Weg finden, um die Daten in Javascript zu filtern, das eigene Auswirkungen haben könnte.

    
Arjan 30.07.2011 19:49
quelle

Tags und Links