Lorsque j'ai défini les demandes $ HTTP sur cache, je vois toujours des demandes en double (avec la même URL et les mêmes données) envoyées au serveur à partir du réseau de navigateur,
$http.post(url, data, {cache:true} ).success(function(response) {
3 Réponses :
Je ne suis pas sûr du cache qui fonctionne. Mais vous pouvez utiliser $ CACHEFACTORY pour la même chose.
app.factory('Cache', function ($cacheFactory) { return $cacheFactory('Cache'); }); app.controller('MyController', function ($scope, $http, Cache) { $http.post(url, data, {cache:Cache} ).success(function(response) {} });
@Pankajparkar oui. Mais cela ne fonctionnera pas à la post-appel. Vient de trouver une note à ce sujet.
du Docs :
Seulement obtenir des demandes JSONP et JSONP sont mises en cache. p> blockQuote>
Si vous souhaitez mettre en cache post-requêtes, vous devrez le faire manuellement. Vous devrez faire un service / usine qui met en cache les réponses et sert de couche avant $ http. Vous pouvez utiliser
$ cachefactory code> ou juste un objet simple. P>
xxx pré> C'est un exemple simple, vous pouvez bien sûr utiliser le même principe et faire un Service plus généralisé qui prend une URL, post-data et un objet de cache et renvoie une fonction qui la demande et la met en cache. p> p>
Bien expliqué, merci Daniel
Documentation angularjs mentionne que : p>
Seulement obtenir des demandes JSONP et JSONP sont mises en cache. p> blockQuote>
$ http.get (URL, {cache: true}) code> cache la réponse HTTP dans l'objet de cache par défaut
(créé avec $ cachefactory) p>. p>.
éléments sur le
$ CACHEFACTORY CODE> sont stockés sous la valeur
paires de la valeur de clé forte>. L'URL spécifiée sur l'objet $ HTTP est utilisée comme clé forte> pour la valeur mise en cache forte> (à renvoyer). C'est l'une des raisons pour lesquelles cela fonctionne bien avec obtenez code>, qui dépend seulement de l'URL étant touchée. P>
dans le cas d'un
Demande de message CODE>, les données envoyées affecteront également la réponse en plus de l'URL à être touchée, ce qui rend la mise en cache A
Publier code> demande beaucoup plus complexe (depuis le La demande devra également faire partie de la clé). Du W3 Spécifications : p>
La fonction réelle effectuée par la méthode postale est déterminée par le serveur et est généralement dépendant de la demande-URI. P>
L'action effectuée par la méthode postale pourrait ne pas entraîner une ressource qui peut être identifié par une URI. P>
Les réponses à cette méthode ne sont pas cachables, à moins que la réponse Comprend des champs de contrôle du cache appropriés ou expire les champs d'en-tête. strong> p> blockQuote>
Si vos données sont simples, Cette donc lien pourrait s'avérer un peu utile. P>