10 Stimmen

Wie man render :json zwischenspeichert

Ich habe eine Controller-Index-Aktion, die Json-Ausgabe zurückgibt.

render :json => my_array.to_json

Welche Art von Caching muss ich hier verwenden. Ist "Seiten-Caching" dafür sinnvoll?

Oder muss ich Action Caching wie unten tun

caches_action :index

4voto

robotmay Punkte 1318

Entweder Action-Caching oder Page-Caching würde gut funktionieren; Page-Caching hätte den Vorteil, dass der Rails-Stack nie aufgerufen wird, aber es hängt davon ab, ob Sie kontrollieren müssen, wer auf diesen Json-Feed zugreift.

Ich bin ein großer Fan des Seiten-Cachings, wenn man damit zurechtkommt - man kann damit große Mengen an Systemressourcen einsparen :)


EDIT: Beispiel für Seiten-Caching, falls es Unklarheiten gab:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

Wenn ich nichts missverstanden habe, sollte das alles sein, was Sie tun müssen.

2voto

Toby Hede Punkte 36095

Für JSON sollten dieselben Überlegungen gelten wie für jede andere Ausgabe. Wenn Sie den Zugriff auf die Daten für den Benutzer validieren müssen, dann ist Action Caching der richtige Weg, ansonsten sollte Page Caching in Ordnung sein.

Wenn sich die Daten aufgrund der Logik in Ihrer Anwendung ändern, sind beide Formen der Zwischenspeicherung problematisch und Sie sollten lieber etwas anderes verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X