多くのクライアント側のデータを保存するのに問題があり、どちらの方法が良いかを判断できません。現在、AngularJSのcacheFactoryを使用していますが、正常に動作しますが、すべてのデータは新しいセッションでリロードされます。代わりにローカルストレージを使用する価値はありますか?
クライアント側の永続データを保存することが目的の場合、現在のセッションのデータをキャッシュするだけの $ cacheFactory は使用できません。
1つの解決策は、新しいローカルストレージAPIを使用することです。 この素晴らしいAngularモジュール はすべての汚い仕事をし、さらに古いブラウザーのcookieにフォールバックします!
代替ソリューションは http://jmdobry.github.io/angular-cache/ です。これはngResourceと連携して動作し、localStorageに同期するように簡単に構成できるため、リクエストを再実行する必要がありません-ページの更新後に完了。
$resource('my/kewl/url/:key', { key: '@key' }, {
'get': { method: 'GET',
cache: $angularCacheFactory('MyKewlResourceCache', {
storageMode: 'localStorage' })
}
});
Blackholeが言ったように、セッションが期限切れになるたびにキャッシュがクリアされるため、$ cacheFactoryは明らかにあなたのソリューションではないようです。 $ cacheFactoryはAngular方法でのmemcache実装です。
angular-cacheは単なるヘルパーAPIであり、基本的に$ cacheFactoryにオプションを追加します。このオプションの1つは、キャッシュを永続ストレージ(localStorageなど)に保存することです。
したがって、永続ストレージにデータを保存する場合は、 angular-local-storage のような利用可能なモジュールのいずれかを使用するか、または $ cookieStore を使用しますが、Cookieを作成します。 。
仕事をする別のangularモジュール: https://github.com/jmdobry/angular-cache