0

我正在构建一个可以离线工作的应用程序。这是一个使用 angularjs 和 firebase 的视频网络应用程序。

该应用程序从 firebase 数据库接收数据,例如在服务 js 文件中:

.service('firebaseService', function ($http) {
    this.getvideosApi = function() {
      return $http.get( 'https://gxxxxx.firebaseio.com/user-videos.json' );
    };
});

我使用该服务从 firebase 数据库中获取 json 数据。视频本身保存在 Firebase 存储中。

在控制器中,我接收数据并显示在我的模板中。

firebaseService.getvideosApi().then(function(response){
      vm.videos = response.data;
    });
  })

这在网上工作得很好,但即使我的应用程序在使用 sw-precache 时完全离线时也不能离线工作。

所以我的问题是无论如何要捕获这个外部托管的 json 文件,以便在应用程序离线时可以使用 json 数据。

第二个问题也是关于使用 sw precache 捕获 cdn 托管文件。因此,如果应用程序在线,将加载文件,如果不使用磁盘中可用的缓存 cdns 文件。

离线时,json 文件头响应为“加载数据失败”。

4

1 回答 1

0

是的,您可以使用inruntimeCaching选项sw-precache为不同的 URL 模式实现不同的缓存策略。这包括 API 结果,以及托管在 CDN 上的第三方资源,您都不能使用sw-precache.

在后台,runtimeCaching将自动sw-toolbox为您配置和使用该库。您可以在文档中了解更多信息。

于 2016-09-20T19:16:51.563 回答