AMP
  • 网站

amp-install-serviceworker

简介

amp-install-serviceworker 组件允许通过同源或 Google AMP 缓存安装 Service Worker。

Service Worker 即使在浏览器关闭时也可以在后台运行,在渲染时间之前缓存所需内容,向用户发送通知等等。

此示例安装了一个 Service Worker,该 Service Worker 会在后台缓存此页面。您可以在安装 Service Worker 后离线加载此页面进行测试。

Service Worker 目前在 Chrome、Edge、Firefox、Opera 和 Safari 中可用。

AMP 项目提供了一个直接可用的 Service Worker,只需一行代码即可帮助您的 AMP 页面获得网络弹性。

设置

导入 amp-install-serviceworker 组件。

<script async custom-element="amp-install-serviceworker" src="https://cdn.ampproject.org/v0/amp-install-serviceworker-0.1.js"></script>

安装 Service Worker

amp-install-serviceworker 的调用可以包括 srcdata-iframe-src 属性。src 是要安装的 Service Worker 的位置,当文档通过与 Service Worker 文件相同的来源访问时使用。当文档通过 Google AMP 缓存访问时,使用 data-iframe-src 属性中注明的 HTML 文档来安装 Service Worker。我们建议同时使用这两个属性。

amp-install-serviceworker 需要单独的 data-iframe-src 选项的原因是,出于安全原因,浏览器无法从其他域安装 Service Worker。有关 Service Worker 安全注意事项的详细信息,请参阅官方规范

如果您不想提供特殊的最小文档来安装 Service Worker,您可以简单地链接到您自己来源的 AMP 文档。

<amp-install-serviceworker
    src="/serviceworker.js"
    data-iframe-src="https://amp.org.cn/serviceworker.html"
    layout="nodisplay">
</amp-install-serviceworker>

在此示例中,当用户第二次访问此 AMP 页面时,将安装 Service Worker 并缓存此域根路径下的所有图像文件和视频文件。

通过执行以下步骤确认 Service Worker 已安装并按预期工作

  1. 两次访问 amp-install-serviceworker
  2. 打开 Chrome Dev Tools 并导航到“Resources”选项卡(或较新版本的 Chrome 上的“Application”选项卡)。在“Service Workers”部分,您可以看到已安装 /sw.js
  3. 然后打开“Cached Storage”部分。它显示所有缓存的图像和视频。
  4. 禁用您的网络连接并重新加载此页面。它仍然有效!在 Dev Tools 的“Network”选项卡中,您将看到 Service Worker 缓存了哪些资源。
需要进一步的解释?

如果此页面上的解释没有涵盖您所有的问题,请随时与其他 AMP 用户联系,讨论您的确切用例。

转到 Stack Overflow
未解释的功能?

AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的持续参与者,但也欢迎您对您特别关注的问题进行一次性贡献。

在 GitHub 上编辑示例