Cache HTTP - " Get " service-Antwort in AngularJS?
Ich möchte in der Lage sein, um eine benutzerdefinierte AngularJS-service, der eine HTTP - " Get " - Anfragen, wenn seine Daten-Objekt ist leer und füllt das Daten-Objekt auf Erfolg.
Nächsten Zeit ein Anruf aus, um diesen service würde ich gerne umgehen, der Aufwand der Herstellung der HTTP-Anfrage erneut und stattdessen die Rückkehr der zwischengespeicherten Daten-Objekt.
Ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eckig ist $http hat eine cache gebaut. Laut der docs:
Booleschen Wert
So können Sie
cache
zu wahr in seinen Optionen:oder, wenn Sie lieber die config Art des Anrufs an:
Cache-Objekt
Können Sie auch einen cache factory:
Können Sie es selbst implementieren mit $cacheFactory (besonders handlich bei der Verwendung von $resource):
{ cache: true}
?cache : true
tun? Wenn die Ergebnisse aus der http-Anfrage zwischengespeichert werden, wie kann ich Sie wiederbekommen, ohne ein anderes http-Anforderung? Wie funktioniert es?Cache-Control
header (a la w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.1.3). > "Ein cache-control-header auf die Antwort nicht beeinflussen, ob und wie Sie Antworten werden zwischengespeichert."Ich denke, es gibt eine noch einfachere Möglichkeit jetzt. Dies ermöglicht die Basis-caching für alle $http-Anfragen (die $resource erbt):
Ein einfacher Weg, dies zu tun in der aktuellen stabilen version (1.0.6) erfordert viel weniger code.
Nach der Einrichtung der Modul-Fabrik hinzufügen:
Nun können Sie diese in den controller:
Einzige Nachteil ist, dass die Namen von Tasten werden die Einstellungen automatisch, um das clearing Sie knifflige. Hoffentlich werden Sie fügen Sie in einige Weg, um die Namen von Tasten.
Lesen Sie in der Bibliothek Winkel-cache wenn Sie wie $http integrierten caching-wollen aber mehr Kontrolle. Sie können es verwenden, um nahtlos zu ergänzen $http-cache mit time-to-live, die periodischen Säuberungen, und die option zum beibehalten des cache, localStorage, so dass es über sessions.
FWIW, es bietet auch tools und Muster für die Herstellung Ihrer cache in einer dynamischeren Art von Daten speichern, die Sie interagieren können mit, als POJO ' s, anstatt nur die Standard-JSON-strings. Kann nicht kommentieren, die Nützlichkeit, die option noch.
(Dann, oben auf, dass, im Zusammenhang library Winkel-Daten ist eine Art Ersatz für $resource und/oder Restangular, und ist abhängig von den Winkel-cache.)
angular-data
ist veraltet jetzt. Das neueste istjs-data-angular
js-Daten.E/a / v1.8.0/docs/js-data-WinkelAls AngularJS Fabriken sind singletons, können Sie einfach speichern Sie das Ergebnis der http-Anforderung, und rufen Sie es das nächste mal Ihren Dienst eingespritzt wird, in etwas.
gesetzten cache aus, um wahr zu sein.