AngularJS,$资源和应用程序缓存

时间:2013-04-06 09:42:32

标签: json caching angularjs offline

我正在使用角度和弹簧编写应用程序。它必须能够脱机工作。在做了一些研究之后,我发现应用程序缓存是最好的方法,因为我需要缓存所有的.css和.js文件。问题是我无法获取spring返回的数据并被$ resource对象请求缓存。当我关闭服务器时,静态数据被缓存但我在chrome的控制台中得到一个关于他无法检索的.json的“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));
 }

我认为这不起作用,无论如何只使用应用程序缓存做到这一点的方法是什么?

1 个答案:

答案 0 :(得分:2)

在资源之上构建了一个模块,可以在读取和写入数据时进行缓存。你应该检查一下。它将在客户端浏览器上保留您的数据副本,并且在保存失败时(由于处于脱机状态)它将在本地保存并继续重试以保存。

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

还有一篇关于该模块的小文章:

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