2016-05-26 12 views
2

をリロードするとき、私はそのようにのようにそれを渡すことによって、そのように私のコントローラ内のそのキャッシュ・オブジェクトを呼んでいます。しかし何らかの理由でデータが永続的ではありません。ページをリロードするたびに、キャッシュは再び空になります。

アイデア?私は何か見落としてますか?

.controller('citiesListCtrl',function($scope,$http,$filter,jsonCache){ 

    jsonCache.get('weatherCache'); 
    console.log(jsonCache); <----- EMPTY 

    $http.get(url) 
     .then(function(response) { 

      jsonCache.put('weatherCache', response.data.records); 
      console.log(jsonCache); <--- HAS DATA 
    }); 
)} 

答えて

1

データは非常に良い理由のために永続的ではありません:$cacheFactoryキャッシュはプレーンなJSオブジェクト薄いラッパ以外の何ものでもありません。

あなたは、サービスが、単純なLRUアルゴリズムが、何もしないことを確認するためにthe sourceを確認することができます。データの永続性のために

は、永続ストレージ(おそらくangular-local-storageまたはangular-localForage)を使用します。 angular-cache内蔵$cacheFactorythat supports persistenceのための別の代替品です。

+0

だから、それが永続的でない場合の目的は何ですか?たとえば、JSONデータをキャッシュしたいとします。他の賢明なユースケースは何でしょうか? – Showcaselfloyd

+0

@Showcaselfloyd解析されたJSONをキャッシュして、アプリケーション全体に再利用します。それをメモリ内キャッシュとみなしてください。 – estus

+0

だから私はとても混乱していると思う。私は、私がやろうとしていた印象を受けていました。例えば、サーバーのtmpディレクトリに保存できるので、このようなデータをPHPのサーバーにキャッシュするのは簡単です。この場合、ページをリフレッシュするたびにデータが破壊されると、なぜそれが必要なのかを理解することは難しいです。 – Showcaselfloyd

関連する問題

 関連する問題