如何在服务工作者中缓存网络数据?

时间:2018-01-04 06:27:44

标签: caching .net-core service-worker angular5 progressive-web-apps

我使用angular 5.0和.net core 2.0创建了渐进式Web应用程序(PWA)。它在离线模式下工作正常。但是只有静态数据被缓存用于离线模式。我需要将先前请求的网络数据存储在服务工作者缓存中,以便我可以在脱机模式下通过服务工作者缓存获取这些数据。

2 个答案:

答案 0 :(得分:2)

您也可以使用角度服务工作者。

  

数据组 - 缓存外部API数据   数据组配置允许您缓存外部API调用,这使您的应用程序可以在没有网络连接的情况下使用外部数据源。这些数据在构建时是未知的,因此它只能在运行时缓存。缓存数据源有两种可能的策略 - 新鲜度和性能。

     

api-fresh - 此新鲜度策略将尝试首先从网络提供数据,然后回退到缓存。您可以设置maxAge属性,该属性定义缓存响应的时间长度以及定义在回退到缓存之前等待多长时间的超时。

     

api-performance - 性能缓存首先从缓存中提供数据,并且只有在缓存过期时才会到达网络。

您可以在 ngsw-config.json 部分找到here的示例。

答案 1 :(得分:0)

尝试检查HTTP Caching

  

您需要做的就是确保每个服务器响应提供   正确的HTTP标头指令,以指示浏览器何时和为   浏览器可以缓存响应的时间。

有关详细信息,您可以查看整个文档。它提供了示例和插图,以便更好地理解HTTP缓存。