Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 9

Die Grundlagen der Cache-Mechanismen: Caching in Ruby on Rails

Seite 2 / 7

Page-Caching eignet sich also vor allem für Seiten, deren Inhalt sich nicht abhängig vom eingeloggten Benutzer oder ähnlichen Dingen ändert. Sehr gute Kandidaten dafür sind zum Beispiel Hilfeseiten, die zwar von einem Redaktionsteam über die Applikation gepflegt werden (weshalb sie nicht als statische HTML-Seiten unter „public/“ abgelegt sind), aber für jeden Benutzer gleich angezeigt werden.

Cache-Inhalte löschen

Werden Cache-Inhalte angelegt, sollte es auch eine Möglichkeit geben, sie zu löschen, beziehungsweise den Cache zu invalidieren. Das kann zum Beispiel explizit geschehen, wenn nach einer Änderung an einer Seite durch folgende Zeilen der Cache invalide wird:

RUBY

def update
		[...]
	expire_page :controller => 'mein', :action => 'index'
	[...]
	end

Listing 2

Das Vorgehen ist allerdings meist nicht sinnvoll, da es die Cache-Funktionalität unnötigerweise an die beteiligten Controller koppelt. Üblicherweise hängt eine Invalidierung vielmehr mit den Modellen zusammen, das heißt sobald sich ein Modellobjekt ändert, das Daten für eine zwischengespeicherte Action bereitstellt, sollte der Cache gelöscht werden. Dehalb kann die Invalidierung von Caches über so genannte „Cache-Sweeper“ an Modelle gebunden werden.

Angenommen, über die oben genannte Action soll eine Liste von Büchern angezeigt werden. Es gäbe eine ActiveRecord-Klasse namens Book, und jedes Mal, wenn sich ein Buch ändert, dann würde der Cache invalide. Ein Sweeper (der üblicherweise unter „app/models/“ abgelegt wird) könnte folgendermaßen aussehen:

  • Seite:
  • 1
  • 2
  • 3
  • 4
  • 7

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden