Pagination ist eine Technik, um große Rekordsätze in kleinere Teile zu zerlegen, die als Seiten bezeichnet werden. Als Entwickler sollten Sie mit der Implementierung der Pagination vertraut sein, aber die Implementierung von Pagination für Echtzeitdaten kann auch für erfahrene Entwickler schwierig werden. In diesem Tutorial werden wir die praktischen Anwendungsfälle und -lösungen für die Pagination und den Cursor -basierten Pagination in Echtzeit diskutieren.
Key Takeaways
- Pagination ist eine Methode, mit der große Datensatzsätze in kleinere Portionen unterteilt werden, die als Seiten bezeichnet werden. Das Implementieren der Pagination für Echtzeitdaten kann aufgrund häufiger Aktualisierungen und des Potenzials für ungenaue Ergebnisse beim Hinzufügen oder Entfernen von Daten eine Herausforderung sein. .
- verschiedene soziale Netzwerke wie Twitter und Facebook haben erfolgreich Echtzeitdatenpagination implementiert. Sie verwenden Cursor -basierte Pagination, die sich eher auf eindeutige Kennungen (Cursors) als auf Pagination aufzeichnen.
- Cursor -basierter Pagination erfordert mindestens eine Spalte mit eindeutigen sequentiellen Werten, ähnlich wie der Parameter MAX_ID von Twitter oder Facebook nach Parameter. Es benötigt auch einen Zählparameter für die Filterung einer begrenzten Anzahl von Ergebnissen sowie in der nächsten und vorherigen URLs, um durch die Daten zu navigieren.
- Cursorbasierter Pagination ist im Allgemeinen effizienter und zuverlässiger als eine offset-basierte Pagination, insbesondere für Echtzeitdaten oder große Datensätze. Es reduziert die Last auf dem Server und macht den Paginationsprozess schneller und effizienter.
- Implementierung von Cursor -basierter Pagination beinhaltet einige Schritte, einschließlich der Entscheidung über eine eindeutige Kennung als Cursor, Änderung der Datenbankabfrage, um Datensätze basierend auf diesem Cursor abzurufen und die Benutzeroberfläche der Anwendung zu aktualisieren, um die pagierten Daten zu verarbeiten und Benutzer zu erlauben, zu den Benutzern zu erlauben, zu den Benutzern zu ermöglichen Navigieren Sie durch die Seiten.
Identifizieren von Problemen in Echtzeitdatenpagination
Wikipedia definiert Echtzeitdaten als Informationen, die unmittelbar nach der Sammlung geliefert werden. Es gibt keine Verzögerung in der Aktualität der bereitgestellten Informationen. In solchen Anwendungen ist es aufgrund der häufigen Aktualisierungen schwierig, genaue paginierte Daten bereitzustellen. Schauen wir uns die Probleme mit der Standardpagination bei der Verwaltung von Echtzeitdaten an.
Angenommen, wir haben anfangs 20 Datensätze und verwenden 10 als Grenze, um die Datensätze in Seiten zu unterteilen. Das folgende Bild zeigt, wie Datensätze in Seiten unterteilt sind.
Praktische Anwendungsfälle von Echtzeitdatenpagination
Wie wir alle wissen, sollte es nicht etwas, was ein Entwickler tun sollte, neu zu erfinden. Wir sollten uns die vorhandenen Paginationstechniken von Websites ansehen, die diese Probleme gelöst haben, bevor wir über den Aufbau unserer eigenen nachdenken. Viele Social -Networking -Websites wie Twitter und Facebook bieten Echtzeitdaten in ihren Benutzerprofilen. In diesem Abschnitt werden wir uns mit den praktischen Anwendungsfällen von Echtzeit -Datenpagination anhand einiger der beliebtesten Websites befassen.
Twitter API Cursor -basierte Pagination
Twitter -Benutzerprofile werden häufig mit neuen Tweets besiedelt, sodass der Twitter -Zeitlinien -Datenabrufmechanismus ein guter Start sein sollte, um Paginationstechniken in Echtzeitdaten -Feeds zu identifizieren. Mal sehen, wie es mit einer Twitter -API -Methode funktioniert.
Folgendes enthält eine Beispielanforderung an die Twitter -API -Such -Tweets -Methode.
https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10In der obigen URL fordern wir die neuesten Tweets, die das Wort „PHP“ enthalten, und unterbrechen das Ergebnis in Blöcke von 10 unter Verwendung des Zählparameters. Dies ist das typische Verhalten der Offset -Pagination, bei dem wir in der Anzahl der Datensätze antworten. Hier sehen wir jedoch zwei zusätzliche Parameter, die seit dem_ID und max_id auf dem Cursor -basierten Pagination ermöglichen. Lassen Sie uns sehen, wie Cursor -basierter Pagination mit unserem früheren Beispiel funktioniert.
Wir hatten 20 Datensätze in 2 Seiten unterteilt und gehen davon aus, dass wir auf der ersten Seite sind. 5 neue Datensätze werden ganz oben auf der Liste hinzugefügt. Das folgende Bild sieht vor dem aktuellen Szenario ein.
https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10
Wie Sie sehen können, enthält der Abschnitt mit Search_metadata Details zu den Ergebnissen. Es generiert die URL der nächsten_Results, falls weitere Datensätze zu paginieren sind. Wir verwenden hauptsächlich den Parameter max_id für die Pagination. Bei jeder Antwort werden wir den Parameter max_id abrufen und können ihn verwenden, um das nächste Ergebnissatz zu generieren. Wir verwenden den Parameter max_id, um Ergebnisse zu erhalten, die älter als die angegebene ID sind.
In unserem Beispiel sollten wir den Parameter max_id als Datensatz 11 abrufen, während wir Datensätze 20-11 anzeigen. Dann bestehen wir das max_id, um das nächste Ergebnissatz zu generieren. Somit erhalten wir die genauen Ergebnisse, wie im folgenden Bild gezeigt.
Wie Sie sehen, haben wir die genauen Ergebnisse für die zweite Seite, indem wir 15 Datensätze oben anstelle von 10 in offsetbasiertem Pagination beseitigen. In Cursorbasierter Pagination können wir das Konzept der Seiten nicht berücksichtigen, da es sich schnell ändert, sodass die Ergebnisse entweder vorher oder als nächstes betrachtet werden. Im Allgemeinen ist max_id effektiv genug, um genaue Ergebnisse zu erzielen, aber es kann Szenarien geben, in denen auch seit hin und her entscheidend ist. Sie können sich fortgeschrittenere Beispiele für die Verwendung sowohl max_id als auch seit dem Abschnitt Twitter ansehen.
.Facebook API Cursor -basierte Pagination
Die API -Implementierung von
Die API -Implementierung von Facebook unterscheidet sich im Vergleich zu Twitter geringfügig, obwohl beide APIs dieselbe Theorie verwenden. Schauen wir uns die Antwort auf eine Beispiel -Facebook -API -Anfrage an."search_metadata": { "max_id": 250126199840518145, "since_id": 24012619984051000, "refresh_url": "?since_id=250126199840518145&q=php&result_type=recent&include_entities=1", "next_results": "?max_id=249279667666817023&q=php&count=10&include_entities=1&result_type=recent", "count": 10, "completed_in": 0.035, "since_id_str": "24012619984051000", "query": "php", "max_id_str": "250126199840518145" }
Wie Sie sehen können, verwendet Facebook zwei String -basierte Cursoren, die vor und nach der Pagination anstelle von SET_ID und MAX_ID gerufen wurden. In Facebook verweist der Vorher -Cursor auf den Beginn der Seite, während der After Cursor auf das Ende der Seite zeigt.
Die meisten APIs mit Echtzeitdaten verwenden diesen Mechanismus, um ihre Ergebnisse genau zu pagieren. Als Entwickler müssen wir die Theorie hinter dem Cursor -basierten Pagination kennen, um vorhandene APIs zu verwenden und bei Bedarf unsere eigene zu erstellen.
Die Grundlagen des Aufbaus von Paginierung für Echtzeitdaten
Implementierung der Echtzeitdatenpagination ist eine komplexe Aufgabe, die über den Umfang dieses Tutorials hinausgeht. Daher werden wir uns mit den Grundbedürfnissen und dem Prozess der Erstellung eines einfachen Paginationsmechanismus befassen, um Cursorbasis zu verstehen.
Identifizieren wir die grundlegenden Komponenten der Cursor -basierten Pagination unter Verwendung der zuvor diskutierten Beispiele.
-
-
-
Nächste URL - Dies ist erforderlich, falls wir die Pagination durch eine API anbieten. Benutzer müssen wissen, ob die nächste Seite verfügbar ist und wie Sie den nächsten Datensatz erhalten.
-
Vorherige URL - Dies ist erforderlich, falls wir die Pagination durch eine API bereitstellen. Benutzer müssen wissen, ob die vorherige Seite verfügbar ist und wie der nächste Datensatz abgerufen wird.
Dies sind der Grundbedarf an Cursorbasis -Pagination. Entwickler arbeiten oft mit offsetbasiertem Pagination und haben selten die Möglichkeit, mit Cursor -basierter Pagination zu arbeiten. Daher ist es wichtig, die Unterschiede und Vorteile jeder Technik für die Verwendung in geeigneten Szenarien zu identifizieren.
-
Bei der Offset -Pagination können wir die Ergebnisse sortieren und paginieren, während der Cursor -basierte Pagination von der Sortierung der eindeutigen Cursorspalte abhängt.
-
Die Offset -Pagination enthält zusätzlich zu den nächsten und vorherigen Links Seitenzahlen. Aufgrund der sehr dynamischen Natur der Daten können wir jedoch keine Seitenzahlen für Cursorbasis -Pagination bereitstellen.
-
Im Allgemeinen ermöglicht uns die Offset -Pagination, in beide Richtungen zu navigieren, während der Cursor -basierte Pagination hauptsächlich für die Vorwärtsnavigation verwendet wird.
Bisher haben wir uns die Grundbedürfnisse und Unterschiede der Cursor -basierten Pagination angesehen. Jetzt können wir in eine Beispielimplementierung eingehen, um festzustellen, wie sie funktioniert.
Implementierung grundlegender Cursor -basierter Pagination
https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10
-
Erstens erstellen wir die Datenbankverbindung mit PDO. Dann führen wir die HandelspaginationData -Funktion aus, um die Ergebnisse zu pagieren.
-
Dann prüfen wir, ob der Parameter max_id oder min_id in der URL verfügbar ist. max_id ist ähnlich wie bei Facebooks After Parameter und wird verwendet, um nach vorne zu navigieren. min_id ähnelt dem vor dem Parameter von Facebook und wurde verwendet, um rückwärts zu navigieren. Außerdem richten wir die Navigationsrichtung, die WHERE -Klausel mit max_id oder min_id und der Sortierreihenfolge ein.
-
Dann führen wir die Abfrage aus, um die vollständige Ergebnisanzahl zu erhalten, gefolgt von derselben Abfrage mit einer Limit -Anweisung, um die Ergebnisse einzugrenzen.
-
Für den Fall, dass wir in die vorherige Richtung durchqueren, müssen wir die Sortierung nach ASC ändern. Andernfalls werden die neuesten Datensätze anstelle der vorherigen Seite abgerufen. Wir kehren die Datensätze in Array um, um sie als absteigend anzuzeigen.
-
Dann schließen wir die Ergebnisse durch. Während des Schleifens weisen wir die ID des ersten Datensatzes als min_id und den letzten Datensatz als max_id zu. Diese Cursorwerte werden zur Filterung genauer Daten verwendet, indem die Duplikation eliminiert wird.
-
Schließlich können wir uns die Paginatorfunktion für die Implementierung von Paginationsverbindungen ansehen.
"search_metadata": { "max_id": 250126199840518145, "since_id": 24012619984051000, "refresh_url": "?since_id=250126199840518145&q=php&result_type=recent&include_entities=1", "next_results": "?max_id=249279667666817023&q=php&count=10&include_entities=1&result_type=recent", "count": 10, "completed_in": 0.035, "since_id_str": "24012619984051000", "query": "php", "max_id_str": "250126199840518145" }
Der folgende Code enthält den Initialisierungscode für die in diesem Abschnitt generierte Pagination.
https://api.twitter.com/1.1/search/tweets.json?q=php&since_id=24012619984051000&max_id=250126199840518145&result_type=recent&count=10
Jetzt haben wir eine einfache Datenpaginationsprobe, um zu verstehen, wie Pagination in Echtzeit funktioniert. Verwenden Sie diesen Code und paginieren Sie die Ergebnisse. Fügen Sie beim Pagieren einige Datensätze am Ende der Tabelle hinzu, um es in Echtzeit zu machen. Pagen Sie dann nach vorne und rückwärts, um Daten Duplikationen auf Seiten zu überprüfen. Tun Sie dasselbe mit einer offsetbasierten Pagination, um den Unterschied zu verstehen.
Schlussfolgerung
In diesem Tutorial haben wir die Theorie hinter Echtzeitdatenpagination mit Cursor -basierter Pagination gelernt. Lassen Sie uns Ihre Gedanken und Erfahrungen in den Kommentaren unten wissen!
häufig gestellte Fragen (FAQs) zu Cursor-basierter Pagination
Was ist der Hauptunterschied zwischen Offset- und Cursor-basierter Pagination? Diese Methode kann jedoch zu Problemen wie doppelten Datensätzen führen, wenn Daten während der Pagination hinzugefügt oder entfernt werden. Auf der anderen Seite verwendet Cursor-basierter Pagination einen eindeutigen Kennung (den Cursor) aus dem zuletzt abgerufenen Datensatz, um die nächsten Datensätze abzurufen. Diese Methode ist effizienter und vermeidet die Probleme, die mit einer Offset-basierten Pagination verbunden sind, und macht sie ideal für Echtzeitdaten. -Basierte Pagination ist besonders effektiv für Echtzeitdaten, da sie einen eindeutigen Kennung (den Cursor) aus dem zuletzt abgerufenen Datensatz verwendet, um den nächsten Satz von Datensätzen abzurufen. Dies bedeutet, dass selbst wenn neue Daten hinzugefügt werden oder vorhandene Daten während des Paginationsprozesses entfernt werden mit einer Art von Daten verwendet werden? Es ist jedoch besonders effektiv mit Echtzeitdaten oder großen Datensätzen, bei denen die Effizienz von entscheidender Bedeutung ist. Der Cursor kann eine eindeutige Kennung sein, z. B. ein Zeitstempel oder eine eindeutige ID, mit der der nächste Satz von Datensätzen abgerufen werden kann. Der Cursor-basierte Pagination verbessert die Leistung, indem die Datenmenge reduziert werden, die gleichzeitig verarbeitet werden müssen. Anstatt alle Datensätze zu holen und dann eine bestimmte Zahl zu überspringen, holt der Cursor-basierte Pagination nur die nächste Menge von Datensätzen, die auf dem Cursor basieren. Dies reduziert die Last auf dem Server und macht den Paginationsprozess schneller und effizienter.
Wie kann ich Cursor-basierte Pagination in meiner Anwendung implementieren? Zunächst müssen Sie sich für eine eindeutige Kennung als Cursor entscheiden. Dies kann ein Zeitstempel, eine eindeutige ID oder ein anderer eindeutiger Wert sein. Als nächstes müssen Sie Ihre Datenbankabfrage ändern, um Datensätze basierend auf diesem Cursor abzurufen. Schließlich müssen Sie die Benutzeroberfläche Ihrer Anwendung aktualisieren, um die paginierten Daten zu verarbeiten und den Benutzern zu ermöglichen, durch die Seiten zu navigieren. Die Pagination ist effizienter und zuverlässiger als eine offsetbasierte Pagination. Es hat einige potenzielle Nachteile. Zum Beispiel kann es komplexer sein, um zu implementieren, insbesondere wenn Ihre Daten keine eindeutige eindeutige Kennung als Cursor zur Verfügung haben. Darüber hinaus ist es möglicherweise nicht für alle Anwendungsfälle geeignet, z. B. wenn Sie zu einer bestimmten Seitenzahl springen müssen. -Basierte Pagination kann mit GraphQL verwendet werden. Tatsächlich hat GraphQL durch die Relay-Spezifikation integrierte Unterstützung für Cursor-basierte Pagination. Auf diese Weise können Sie problemlos eine effiziente, zuverlässige Pagination in Ihren GraphQL-Anwendungen implementieren. Kennung wie ein Zeitstempel oder eine eindeutige ID als Cursor. Sie können dann Ihre SQL-Abfrage ändern, um Datensätze basierend auf diesem Cursor zu erhalten, wobei Sie die Klauseln "Where" und "Limit" verwenden, um den Reichweite der Datensätze zu erhalten. API?
Slack verwendet Cursor-basierte Pagination in ihrer API, um große Datenmengen effizient zu erhalten. Sie verwenden eine eindeutige Kennung als Cursor und geben diesen Cursor in der API -Antwort zur Verfügung, damit Clients den nächsten Satz von Datensätzen abrufen können. Dies ermöglicht es ihnen, große Datensätze mit hoher Leistung und Zuverlässigkeit zu verarbeiten. Kennung als Cursor und integriert diesen Cursor in das Objekt "Links" der API -Antwort. Auf diese Weise können Clients den nächsten Datensatzsatz problemlos abrufen, indem sie dem bereitgestellten Link folgen. Diese Spezifikation bietet eine konsistente Möglichkeit, Cursor-basierte Pagination in JSON-APIs zu implementieren.
Das obige ist der detaillierte Inhalt vonPaginierung von Echtzeitdaten mit Cursor-basierter Pagination. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Artikel erläutert, wie Schnittstellen in PHP erstellt, implementiert und verwendet werden und sich auf ihre Vorteile für die Organisation von Code und die Wartbarkeit konzentriert.

In dem Artikel werden die Unterschiede zwischen CryPT () und Passage_hash () in PHP für Passwort -Hashing erörtert und sich auf ihre Implementierung, Sicherheit und Eignung für moderne Webanwendungen konzentriert.

In Artikel werden in PHP durch Eingabevalidierung, Ausgabecodierung und Verwendung von Tools wie OWASP ESAPI und HTML-Reinigungsmittel die Verhinderung des Cross-Site-Skripts (XSS) erläutert.

Das Autolading in PHP lädt bei Bedarf die Klassendateien automatisch und verbessert die Leistung durch Reduzierung des Speichergebrauchs und Verbesserung der Codeorganisation. Zu den Best Practices gehört die Verwendung von PSR-4 und das organisierende Code effektiv.

PHP -Streams vereinheitlichen die Handhabung von Ressourcen wie Dateien, Netzwerkhöhlen und Komprimierungsformaten über eine konsistente API, die Komplexität abstrahieren und die Flexibilität und Effizienz der Code verbessern.

In dem Artikel wird das Verwalten von Datei -Upload -Größen in PHP erläutert, wobei der Schwerpunkt auf der Standardgrenze von 2 MB und der Erhöhung der PHP.ini -Einstellungen liegt.

In dem Artikel werden nullbare Typen in PHP erörtert, die in PHP 7.1 eingeführt wurden und ermöglicht, dass Variablen oder Parameter entweder ein angegebener Typ oder ein Null sind. Es zeigt Vorteile wie eine verbesserte Lesbarkeit, Typsicherheit und explizite Absicht und erklärt, wie man deklariert

Der Artikel erörtert die Unterschiede zwischen UNSET () und Unlink () in der Programmierung und konzentriert sich auf ihre Zwecke und Anwendungsfälle. UnSet () entfernt Variablen aus dem Speicher, während Unlink () Dateien aus dem Dateisystem löscht. Beide sind für Effec von entscheidender Bedeutung


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
