如何通过Service worker解决动态URL依赖关系?

时间:2016-06-06 19:28:03

标签: service-worker progressive-web-apps sw-precache sw-toolbox

虽然我熟悉Sw-precacheSw-toolbox库,但在使用Angular构建Progressive Web App时,仍然需要考虑如何提供动态依赖关系。

我使用Sw-precache构建过程为我的应用程序预先缓存了bundle.js,bundle.css和一些静态模板。 (假设我的所有模板(.html文件)都依赖于bundle.js和bundle.css)

  1. 如果我更新未预先缓存的模板怎么办?如何确保将bundle.js / css与我的模板一起更新。

  2. 如果我更新已经预先缓存的模板怎么办?它是否总是与预先缓存的bundle.js / css文件一起更新。

  3. 最后一个用例,当我的模板已经预先缓存但是它有一些带有src属性的内联脚本时,这个脚本文件没有缓存在任何地方。假设我在模板和脚本文件中做了一些更改。我应遵循哪种缓存方法来确保与脚本文件一起更新模板文件。

  4. 我们不遵循纯App-shell架构,就像使用Angular.js设计的单页应用程序

2 个答案:

答案 0 :(得分:1)

Sw-Precache将更新文件更改,生成新的服务工作程序,当您将更新部署到捆绑js或css时,您应该部署新的Sw-Precache生成的服务工作者。

答案 1 :(得分:0)

就像一般的想法一样,哈希所有你正在预先缓存的资源并执行哈希哈希并在服务工作者中包含这个摘要,这样当其中一个依赖项发生变化时,摘要将会改变,你的服务工作者也会如此将更新触发新的安装事件。它有意义吗?