Angular 5 个 Service Worker 可以在后台获取资源吗
Can Angular 5 Service Worker fetch assets in background
我正在使用 Angular 5 增加渐进式 Web 应用程序。我们有一个 CMS 可以为我们的应用程序提供原始 JSON。对于包含图像的内容,JSON 包含驻留在我们服务器上的图像的 URL。我能够从我们的 CMS 中检索所有图像的列表(或根据条件过滤的列表)。
使用获取命令检索图像 URL 列表并让 Service Worker 提前缓存这些资产是否有意义?如果是这样,是否可以自定义 Angular 5 的 Service Worker 实现来处理后台的抓取场景?或者,我是否必须创建一个手动 Service Worker 来获取图像资产的 URL 列表然后缓存它们?
您可以使用 NGSW 作为 explained here 预取或延迟加载您的资产。
您似乎有兴趣预加载资产,但要预先增加带宽和磁盘空间 space。如果管理得当,在 运行 时间内提供更快更流畅的用户体验绝对是一个很好的 trade-off。
但是在这里定义资产的方式有点棘手。您的资产列表是使用 JSON 文件动态提取的。当明确调用它们时,SW 会缓存您的资产。如果您的 JSON 正在返回图像列表,您可以让 SW 缓存 json 数据并在 JSON 中获取图像不是 SW 的典型用例,对于 NGSW 也是如此。
您仍然可以通过稍微不同的方法实现它。由于您的 运行 时间决定了哪些图像对用户 session/any 其他条件有效,因此您可以将这些资产作为 prerendered html page(想想 ... 响应)而不是 JSON 并在主页中注入此 HTML 块并将可见性设置为隐藏。这使 SW 能够自然地缓存您的动态 defined/derived 资产。
更新: 通过 URL 显式缓存,如果您不喜欢将图像放入 DOM(最好不要放入 DOM 当图像列表很大时)
您可以通过在 SW as in here and here. sw-test's documentation is here 中放置一个承诺,使用一些逻辑(JSON 在您的情况下调用和响应)明确地缓存一些特定的 URL,它有您缓存图像 URL 的确切用例在 JSON 回复中。
我正在使用 Angular 5 增加渐进式 Web 应用程序。我们有一个 CMS 可以为我们的应用程序提供原始 JSON。对于包含图像的内容,JSON 包含驻留在我们服务器上的图像的 URL。我能够从我们的 CMS 中检索所有图像的列表(或根据条件过滤的列表)。
使用获取命令检索图像 URL 列表并让 Service Worker 提前缓存这些资产是否有意义?如果是这样,是否可以自定义 Angular 5 的 Service Worker 实现来处理后台的抓取场景?或者,我是否必须创建一个手动 Service Worker 来获取图像资产的 URL 列表然后缓存它们?
您可以使用 NGSW 作为 explained here 预取或延迟加载您的资产。
您似乎有兴趣预加载资产,但要预先增加带宽和磁盘空间 space。如果管理得当,在 运行 时间内提供更快更流畅的用户体验绝对是一个很好的 trade-off。
但是在这里定义资产的方式有点棘手。您的资产列表是使用 JSON 文件动态提取的。当明确调用它们时,SW 会缓存您的资产。如果您的 JSON 正在返回图像列表,您可以让 SW 缓存 json 数据并在 JSON 中获取图像不是 SW 的典型用例,对于 NGSW 也是如此。
您仍然可以通过稍微不同的方法实现它。由于您的 运行 时间决定了哪些图像对用户 session/any 其他条件有效,因此您可以将这些资产作为 prerendered html page(想想 ... 响应)而不是 JSON 并在主页中注入此 HTML 块并将可见性设置为隐藏。这使 SW 能够自然地缓存您的动态 defined/derived 资产。
更新: 通过 URL 显式缓存,如果您不喜欢将图像放入 DOM(最好不要放入 DOM 当图像列表很大时)
您可以通过在 SW as in here and here. sw-test's documentation is here 中放置一个承诺,使用一些逻辑(JSON 在您的情况下调用和响应)明确地缓存一些特定的 URL,它有您缓存图像 URL 的确切用例在 JSON 回复中。