Panel-Cache-Terminologie - Was ist der Unterschied zwischen Caching nach Argument und Kontext?


7

Ich versuche zu lernen, wie man das Caching von Panels einrichtet. Ich habe ein Video über das Beherrschen des Drupal-Cachings gesehen und ich habe das Buch von Earl Miles über Panels und Ansichten, Drupals Bausteine , aber leider gibt es kein spezielles Kapitel zum Caching.

Ich habe also ein Panel, das das Benutzerprofil überschreibt, und in diesem Panel habe ich eine Variante, die eine Reihe von Ansichten-Inhaltsfenstern enthält. Ich möchte diese Inhaltsbereiche pro angezeigtem Benutzerprofil zwischenspeichern, da sie natürlich für jeden angezeigten Benutzer unterschiedlich sein sollten.

Jedes dieser Inhaltsfenster verfügt über einen Kontextfilter für die UID "Inhalt: Autor" .

Der Wert wird Panels von der Eingabeoption Argument in Ansichten bereitgestellt , für die die UID-Quelle für Inhalt: Autor auf Von Kontext und Erforderlicher Kontext auf Benutzer-ID festgelegt ist :

Screenshot anzeigen

In Panels kann ich auf dem Bildschirm " Einfacher Cache- Konfiguration" für die Granularität " Argument" oder " Kontext" auswählen. Der Hilfetext lautet wie folgt:

Wenn "Argumente" ausgewählt sind, wird dieser Inhalt pro einzelnem Argument in der gesamten Anzeige zwischengespeichert. Wenn "Kontexte" ausgewählt sind, wird dieser Inhalt für jeden eindeutigen Kontext im Bereich oder in der Anzeige zwischengespeichert. Wenn "weder", gibt es nur einen Cache für diesen Bereich.

In Ansichten wird die Option jedoch als Argumenteingabe bezeichnet, und der von mir ausgewählte Wert stammt aus dem Kontext . Beschäftige ich mich also mit einem Argument oder einem Kontext?

Wenn möglich, wäre sowohl eine allgemeine Antwort, die den Unterschied zwischen Argument und Kontext in diesem Fall beschreibt, als auch eine spezifische Antwort auf meine Frage fantastisch.


Hat eine Antwort gepostet, die hoffentlich sowohl die allgemeine Frage als auch Ihre Situation beantwortet, aber lassen Sie es mich wissen, wenn ich es nicht getan habe.
Letharion

Antworten:


7

Haftungsausschluss: Normalerweise finde ich, dass das Setup so einfach ist, dass die Unterscheidung nicht erforderlich ist. Daher muss ich zugeben, dass meine praktischen Erfahrungen begrenzt sind und ich mich im Folgenden irren könnte.

Arguments, basieren auf der URL. node/5wird separat zwischengespeichert node/7, da 5 sich von 7 node/5/7unterscheidet. Wenn Sie einen solchen Pfad haben möchten, ist dies ein weiterer Cache.

Contextswerden im Allgemeinen von abgeleitet Arguments, und in den obigen Beispielen ist es sehr wahrscheinlich, dass die Caches genau gleich sind, unabhängig davon, welche Cache-Option man auswählen würde. Jedoch Contextskann auch aus (mindestens) drei anderen Quellen stammen, Relationshipsmanuell definiert diejenigen, und der Sonderfall, der angemeldete Benutzer.

Wenn Ihr Kontext sowohl ein Knoten aus der URL als auch ein Benutzer aus einem entity referenceKnoten auf dem Knoten ist, hat Ihr Kontext zwei eindeutige Entitäten oder zwei Kontexte, aber nur ein Argument.

Man wählt also Contextoder Argumentabhängig davon, ob der Cache irgendwelche "zusätzlichen" Kontexte in Frage stellen soll oder nicht.

In Ansichten wird die Option jedoch als Argumenteingabe bezeichnet, und der von mir ausgewählte Wert stammt aus dem Kontext. Beschäftige ich mich also mit einem Argument oder einem Kontext?

Leider ist die Terminologie zwischen den beiden Modulen nicht genau gleich. Panels ruft dynamische Teile der URL-Argumente auf und erstellt daraus Kontexte. Ansichten bedeutet etwas näher an einem Funktionsargument, wenn es sich auf Argumente bezieht, und in diesem speziellen Fall leitet es das Argument aus einem Kontext ab, der von Panels übergeben wird.


Wenn der Cache also sowohl den angemeldeten Benutzer als auch den angezeigten Benutzer berücksichtigen soll, sollte ich Kontexte und keine Argumente verwenden .
Patrick Kenny

1
Ja, wenn Sie in dieser Situation Argumente verwenden, wird der angemeldete Benutzer ignoriert.
Letharion

Ich habe das zur Liste der Kontextquellen hinzugefügt.
Letharion
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.