1

angular と spring を使用してアプリケーションを作成しています。オフラインで作業できる必要があります。いくつかの調査を行った後、すべての .css および .js ファイルをキャッシュする必要があるため、アプリケーション キャッシュが最善の方法であることがわかりました。問題は、Spring によって返され、$resource オブジェクトによってキャッシュされるように要求されたデータを取得できないことです。サーバーの電源を切ると、静的データはキャッシュされますが、取得できない .json について、chrome のコンソールに「GET エラー」が表示されます。

angular.module('MonService', ['ngResource']).
factory('Projet', function($resource){
return $resource('json/accueil');
});

応答を .json ファイルに手動で保存し、このファイルもキャッシュして $resource のソースとして使用するなどの方法を試しましたが、長くて複雑に思えます...

または、次のような localstorage を使用します。

var cache, AmettreDansCache;
donne = {};

cache= window.localStorage.getItem('projets');

  if (!cache) {
   AmettreDansCache= $resource('json/accueil');
   window.localStorage.setItem('projets', JSON.stringify(AmettreDansCache));
   return AmettreDansCache
  }
 else{
    return angular.extend(donne, JSON.parse(cache));
 }

とにかく、アプリケーションキャッシュのみを使用してそれを行う方法は何ですか?

4

1 に答える 1

2

データの読み取りと書き込みの両方でキャッシュを行うリソースの上に構築されたモジュールがあります。あなたはそれをチェックアウトする必要があります。クライアントのブラウザにデータのコピーを保持し、(オフラインのため) 保存に失敗した場合はローカルに保存し、保存を再試行し続けます。

https://github.com/goodeggs/angular-cached-resource

モジュールに関する小さな記事もあります。

http://bites.goodeggs.com/open_source/angular-cached-resource/

于 2014-05-28T09:36:18.823 に答える