Angular Service Restangular Caching

8

Gibt es Szenarien, in denen ein angularer Dienst Restangular / $ http-Aufrufe zwischenspeichert, ohne explizit dazu aufgefordert zu werden? Zum Beispiel habe ich einen Dienst, der so etwas macht:

%Vor%

Dieser Dienst wird jedes Mal aufgerufen, wenn eine Seite aktualisiert wird (sie wird in der UI-Router-Route aufgelöst). Gibt es eine Chance, dass dieser Aufruf NICHT jedes Mal gemacht wird, aber irgendwie von Angular zwischengespeichert wird, ohne dass es explizit dazu aufgefordert wird?

Ich bin mit Caching explizit wie folgt vertraut:

%Vor%

Das ist NICHT die Absicht. Meine Frage ist, ob eckige Dienste eine angeborene Caching-Logik haben, und wenn ja, wie man sie überschreibt.

    
VSO 05.08.2015, 03:42
quelle

1 Antwort

19

Standardmäßig implementiert Restangular keine Caching-Strategien oder -Szenarien, Sie müssen Ihre eigenen erstellen. Soweit ich weiß, können Sie dies mit cache tun, wenn Sie mit Restangular arbeiten:

  1. Sie können alles zwischenspeichern, wie Sie es gesagt haben, aber Sie könnten mit veralteten Daten arbeiten, seien Sie also vorsichtig damit:

    %Vor%
  2. Sie können die Antwort für einzelne Anfragen zwischenspeichern:

    %Vor%
  3. Sie können eine benutzerdefinierte Methode verwenden $ cacheFactory Instanz ablaufen oder zwischengespeicherte Antworten bei Bedarf ungültig machen, indem Sie Folgendes aufrufen: $cacheFactory.get('$http').removeAll()

  4. Sie können Ihre eigene Cache-Schnittstelle einrollen, anstatt "true" zu setzen in den Cache. Dies ist ein Factory-Beispiel, das ich verwende, um alle zu entfernen zwischengespeicherte Daten     Wann immer ich eine create , Aktualisierung oder Löschung Anfrage:

    sende %Vor%
Salem Ouerdani 05.08.2015, 08:45
quelle

Tags und Links