Eines der wichtigsten Dinge, auf die wir beim Erstellen von Webanwendungen immer achten müssen, ist die Leistung.
Wie man so schön sagt: Leistung ist ein Feature.
Ob Sie Designer, Entwickler oder Benutzer sind, Sie wissen das intuitiv: Wenn es um Apps geht, hassen wir das Warten. Wir sind frustriert, wenn die Dinge nicht schnell genug funktionieren oder wir länger warten müssen, als wir denken.
Zu diesem Zweck können die meisten modernen Webentwicklungs-Frameworks mithilfe einer API eine Art Caching implementieren, und WordPress (wenn auch ein Basis-Framework) ist keine Ausnahme.
Während wir unsere Diskussion darüber fortsetzen, warum WordPress eine brauchbare Wahl als Grundlage für die Entwicklung von Webanwendungen ist, werden wir uns die von der Kernanwendung bereitgestellten APIs ansehen, wie sie funktionieren und wie wir sie auch zu unserem Vorteil nutzen können Wie man zusätzliches Caching-Plugin verwendet, verbessert die Leistung weiter.
Kurz gesagt, Caching ist wichtig, weil es uns ermöglicht, häufig abgerufene Daten irgendwo im Speicher zu speichern, damit sie schnell abgerufen werden können.
Wenn man das Gesamtbild betrachtet, wird dies immer deutlicher, wenn mehrere Benutzer eine Website betrachten. Ich meine, wenn eine Person (oder nur sehr wenige) eine Website besucht und diese Website ihre Daten in einer Datenbank speichert, müssen diese Informationen jedes Mal, wenn die Seite geladen wird, von der Website abgerufen werden. Datenbank gespeichert, in die Seite eingefügt und an den Benutzer zurückgegeben.
Wenn ein bestimmter Cache-Level eingerichtet ist, muss die Datenbank nicht häufig aufgerufen werden. Stattdessen können Informationen aus einem Bereich im Speicher abgerufen werden, was einen schnelleren Abruf und damit kürzere Seitenladezeiten ermöglicht.
Auf die technischen Details hierzu gehen wir später in diesem Artikel ein.
Wenn Sie WordPress schon lange verwenden, kennen Sie wahrscheinlich die vielen verfügbaren Caching-Plugins.
Das sind zweifellos großartige Lösungen zur Beschleunigung Ihrer Website und/oder Webanwendung, aber es stellt sich die Frage: Wenn Sie dazu ein Plugin verwenden können, warum sollten wir uns dann darüber Sorgen machen?
Natürlich ist das eine berechtigte Frage, aber Plugins können allein nur eine begrenzte Menge leisten.
Entwickler können ihre Anwendungen so erstellen, dass sie nicht nur ohne Caching-Mechanismen eine gute Leistung erbringen, sondern durch besagte Caching-Plugins auch deutlich verbessert werden.
Ich meine, diese Caching-Plugins suchen nach Daten, die Themen und Anwendungen irgendwo speichern möchten, und wenn wir dies programmgesteuert in unserem eigenen Arbeitskontext tun können, haben diese Plugins einen größeren Einfluss auf die Leistung.
Nachdem wir die verfügbaren APIs verstanden haben, werden wir dieses Thema später in diesem Artikel noch einmal aufgreifen und sehen, wie sie die Leistung von Caching-Plugins verbessern können.
Um First-Level-Caching in unserer Anwendung einzuführen, müssen wir die Transients-API von WordPress nutzen. Bitte beachten Sie zunächst, dass die offizielle Definition eines Transienten „etwas ist, das nur für kurze Zeit existiert.“
Wie im Codex Alimentarius definiert:
[Transient API] bietet eine einfache und standardisierte Möglichkeit, zwischengespeicherte Daten vorübergehend in der Datenbank zu speichern, indem ihr ein benutzerdefinierter Name und ein Zeitbereich zugewiesen werden, nach dem die Daten ablaufen und gelöscht werden.Aber was genau bedeutet das? Schließlich werden die Daten immer noch in der Datenbank gespeichert. Warum ist dies also besser als das Speichern der Daten in einer anderen Datenbanktabelle (wie der
-Tabelle?)? wp_options
Transienten einrichten
Konkret benötigen Sie einen Schlüsselwert, der die Daten eindeutig identifiziert, und dann einen mit diesem Schlüssel verknüpften Wert. Sie benötigen außerdem eine Ablaufzeit (in Sekunden), um die Daten in der Tabelle zu behalten, bevor die Tabelle aktualisiert wird.
Angenommen, wir möchten den Namen des aktuellen Benutzers als letzten oder zuletzt aktiven Benutzer auf der Website speichern. Wir können dies mit der Funktion
tun. wp_get_current_user()
set_transient( 'most_recent_user', wp_get_current_user()->user_login, 12 * HOUR_IN_SECONDS )
HOUR_IN_SECONDS
, erklärt dies noch nicht, wie wir mit Transienten umgehen, wenn sie nicht existieren oder bereits existieren. Wir werden später in diesem Artikel ausführlich darauf eingehen.
Wenn es um das Abrufen von Transienten geht, ist es dem Abrufen von Metadaten oder Optionen sehr ähnlich. Ich meine, wir müssen nur den Schlüssel kennen, um die Informationen abzurufen.
Um mit dem obigen Beispiel übereinzustimmen, können wir den neuesten Benutzer der Anwendung mit dem folgenden Aufruf abrufen:
get_transient('most_recent_user');
Dies gibt natürlich jede Art von Informationen zurück, die Sie gespeichert haben, oder Wenn der Transient abgelaufen ist (d. h. mehr als 12 Stunden vergangen sind), gibt die Funktion einen booleschen Wert von FALSE
.
Dies ist wichtig, insbesondere wenn Sie versuchen, zwischengespeicherte Werte zu lesen und diese dann aus einer anderen Datenquelle abrufen müssen (sofern sie nicht im temporären Speicher verfügbar sind).
Wir werden uns vor dem Ende dieses Artikels ein vollständiges Beispiel dafür ansehen.
Wenn Sie schließlich einen Transienten löschen müssen, um ihn vollständig zu entfernen, oder ihn vor seinem definierten Ablauf entfernen müssen, damit er durch einen anderen Wert ersetzt werden kann, können Sie einfach die folgende Funktion verwenden:
delete_transient('most_recent_user');
Wenn das vorübergehende Löschen des Werts nicht erfolgreich ist, wird die Funktion zurückgegeben FALSE
;否则,它将返回 FALSE
; andernfalls wird sie zurückgegeben
Beim Festlegen der Ablaufzeit eines zwischengespeicherten Werts gibt es Möglichkeiten, das Festlegen des Werts einfacher zu gestalten als musikalisch einfache Ganzzahloperationen.
MINUTE_IN_SECONDS
Zum Beispiel ist
Ab WordPress 3.5 wurden der Kernanwendung mehrere Konstanten hinzugefügt, um diese Berechnungen leichter lesbar zu machen.
Das heißt:
MINUTE_IN_SECONDS
HOUR_IN_SECONDS
DAY_IN_SECONDS
WEEK_IN_SECONDS
YEAR_IN_SECONDS
Einfacher zu verwenden, zu lesen und zu schreiben, nicht wahr?
An diesem Punkt halte ich es für wichtig zu verstehen, wie man einen Übergang einrichtet, indem man den Wert in der Optionstabelle speichert.
Hier ist die Reihenfolge, in der wir dies tun:
wp_options
Wir speichern eine Option in der Dann machen wir in der zweiten Hälfte des Codes Folgendes:
Nachdem das gesagt ist, werfen wir einen Blick darauf:
$username = wp_get_current_user()->user_name; add_option( 'most_recent_user', $username ); // Check to see if the value exists in the cache if ( FALSE !== get_transient( 'most_recent_user' ) ) { // If it does, we'll delete it... if( delete_transient( 'most_recent_user' ) ) { // ...and store the most recent user for a maximum of one minute set_transient( 'most_recent_user', MINUTE_IN_SECONDS ); } else { // The deletion was unsuccessful, so log the error } } // Now try to read the value from the cache. if ( FALSE !== ( $username = get_transient( 'most_recent_user' ) ) { // Since it doesn't exist, then we'll read it from the option's table $username = get_option( 'most_recent_user' ); // And then we'll update the cache set_transient( 'most_recent_user', $username, MINUTE_IN_SECONDS ); }
Bitte beachten Sie, dass dieses Beispiel nicht vollständig ist – es könnte umgestaltet werden, um klarer zu sein, und der Code sollte in Funktionen abstrahiert werden, die für die Anwendung relevanter sind. Der Zweck dieses Codes besteht jedoch darin, zu zeigen, wie mit bedingter Logik, Optionen und Transienten umgegangen wird .
Nach alledem können wir uns noch einmal mit der Frage befassen, wie man Transienten nutzen kann, um die Plug-in-Leistung zu verbessern.
Wie wir bereits erwähnt haben:
Nachdem wir die verfügbaren APIs verstanden haben, werden wir dieses Thema später in diesem Artikel noch einmal aufgreifen, um zu verstehen, wie sie die Leistung von Caching-Plugins verbessern können.
块引用>Davon abgesehen kommt es beim Caching und in der WordPress-Datenbank vor allem auf den Speicherort der Daten in der Datenbank an.
Da transiente Daten an einem anderen Ort als andere Daten gespeichert werden, suchen Plugins (z. B. solche, die auf Memcached basieren) nach den Daten, in denen die transienten Daten gespeichert sind, und laden die Daten von diesem Ort in den Speicher.
Wenn also Daten angefordert werden, werden die Daten aus dem Speicher abgerufen. Wenn die Daten nicht vorhanden sind, werden sie aus der Datenbank abgerufen.
Am wichtigsten ist: Wenn das Lesen von Daten aus dem Cache und das Abrufen von Daten aus der Datenbank fehlschlägt, werden sie bei korrekter Programmierung wieder in den Cache eingefügt, sodass sie beim nächsten Abruf wieder in den Cache eingefügt werden. im Speicher verfügbar.
Abschließend ist bei vorübergehenden Informationen vor allem zu beachten, dass sie ein Ablaufdatum haben. Das bedeutet, dass die Daten nur für einen bestimmten Zeitraum in diesem Bereich der Datenbank gespeichert werden.
Dafür müssen wir dies berücksichtigen. Das bedeutet, dass wir jedes Mal, wenn wir Transienten abrufen wollen, sicherstellen müssen, dass sie vorhanden sind. Wenn nicht, ziehen wir sie aus ihrem Standort und lagern sie am richtigen Ort.
Benutzerdefinierte Abfrage
An dieser Stelle haben wir viele der von WordPress bereitgestellten Funktionen im Zusammenhang mit den Grundlagen der Webanwendungsentwicklung behandelt.
Aber wir müssen noch eine letzte wichtige Komponente abdecken, und zwar den Umgang mit benutzerdefinierten Abfragen.
Natürlich gibt es einige großartige APIs, die sich auf die Ausführung von Abfragen beziehen, die für den speziellen Zweck von WordPress entwickelt wurden, wie
WP_Query
和WP_User_Query
, aber wir werden uns auch einige native Tools ansehen, die es uns ermöglichen, mit definierten WordPress-Objekten zu schreiben und benutzerdefinierte Abfragen zu ermöglichen zur Datenbank mithilfe von Methoden zur korrekten Datenbereinigung.Aber all das und noch mehr werden wir im nächsten Artikel behandeln.
Das obige ist der detaillierte Inhalt vonLeitfaden zur Entwicklung von WordPress-Webanwendungen: Detaillierte Erläuterung der verfügbaren Funktionen (Teil 7): Caching-Technologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!