2016-04-02 12 views
0

'da güncellenmiş önbellek verilerinin nasıl alınacağınımodülünü angular-cache modülü kullanarak önbelleğe alıyorum. Önbelleğe alınan veriler güncellendiyse $http hizmetini aramak istiyorum. orada öylesine, önbellekli jpe

$ kaynak sizin için otomatik olarak önbelleğe yönetecek: Sorun ben otomatik önbelleğe el

//controller.js 
angular.module('adminPanelApp').controller('recordController',recordController); 

    function recordController($scope,userService) { 
     $scope.title='FeedBacks From Users'; //This is Title to be sset to page 
     var promise = userService.getRecord(1); 
     promise.then(function (response) { 
     $scope.users = response; 
     }); 
    } 

    //service.js 

    angular.module('adminPanelApp').service('userService', ['$http', '$q','CacheFactory', function ($http, $q,CacheFactory) { 
     CacheFactory('dataCache', { 
     cacheFlushInterval: 60, // This cache will clear itself every hour 
     deleteOnExpire: 'aggressive', // Items will be deleted from this cache when they expire 
     storageMode:'localStorage' 
     }); 

     return { 
     getRecord: function (id) { 
      var deferred = $q.defer(); 
      var start = new Date().getTime(); 
      var dataCache = CacheFactory.get('dataCache'); 
      if (dataCache.get(id)) { 
      deferred.resolve(dataCache.get(id)); 
      } else { 
      $http.get('http://54.86.64.100:3000/api/v1/user/feedback-all', +id).success(function (data) { 
       dataCache.put(id, data); 
       console.log('time taken for request: ' + (new Date().getTime() - start) + 'ms'); 
       deferred.resolve(data); 
       dataCache.get(id, data); 
      }); 
      } 
      return deferred.promise; 
     }};// 
    }]);//end of service 
+0

Lütfen 'önbelleğe alınmış veriler güncelleştiriliyorsa' tanımlayın, bu, bilgileri yerel olarak güncelleştirirseniz veya sunucudaki verilerin güncelleştirildiği anlamına gelir. –

+0

[onExpire] (https://github.com/jmdobry/angular-cache#onexpire) işleyicisini kullanmalı ve verileri tekrar getirmelisiniz. – fracz

cevap

0

1 method-temizleyerek değilim kadar bu kod $ kaynağı kullanarak, yalnızca önbelleğe alınmış verileri dönen olduğunu yaşıyorum Önbelleğin temizlenmesini zorlamaya gerek yok. Fikir şu ki, sorgulayabileceğiniz bir kaynağınız varsa, bu sorgu yanıtı önbelleğe alınır, ancak aynı kaynak için bir şey kaydederseniz, önceden önbelleğe alınmış veriler geçersiz olmalıdır, dolayısıyla sizin için temizlenir. Bir olay dayalı

2 metodolojik kuvvet önbellek

Orada veri güncellenmekte olduğunu anlayamayacaksınız açısal bazı durumlar vardır ve belirli bir eyleme dayanan bir güncelleme zorlamak isteyebilirsiniz. Bunu kaldırma yöntemini kullanarak yapabilirsiniz. Durumunuza:

dataCache.remove(key); 
İlgili konular