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!

Lange URLs, die oft mit Schlüsselwörtern und Tracking -Parametern überfüllt sind, können Besucher abschrecken. Ein URL -Verkürzungsskript bietet eine Lösung, die präzise Links erstellt, die ideal für soziale Medien und andere Plattformen sind. Diese Skripte sind für einzelne Websites a wertvoll

Nach seiner hochkarätigen Akquisition durch Facebook im Jahr 2012 nahm Instagram zwei APIs für den Einsatz von Drittanbietern ein. Dies sind die Instagram -Graph -API und die Instagram Basic Display -API. Ein Entwickler, der eine App erstellt, die Informationen von a benötigt

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Dies ist der zweite und letzte Teil der Serie zum Aufbau einer Reaktionsanwendung mit einem Laravel-Back-End. Im ersten Teil der Serie haben wir eine erholsame API erstellt, die Laravel für eine grundlegende Produktlistenanwendung unter Verwendung von Laravel erstellt hat. In diesem Tutorial werden wir Dev sein

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Die 2025 PHP Landscape Survey untersucht die aktuellen PHP -Entwicklungstrends. Es untersucht Framework -Nutzung, Bereitstellungsmethoden und Herausforderungen, die darauf abzielen, Entwicklern und Unternehmen Einblicke zu geben. Die Umfrage erwartet das Wachstum der modernen PHP -Versio


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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Dreamweaver CS6
Visuelle Webentwicklungstools

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software
