amp-install-serviceworker
简介
amp-install-serviceworker
组件允许通过同源或通过 Google AMP 缓存安装 Service Worker。
Service Worker 即使在浏览器关闭时也可以在后台运行,在渲染时间之前缓存所需内容,向用户发送通知等等。
此示例安装了一个 Service Worker,它会在后台缓存此页面。您可以在安装 Service Worker 后离线加载此页面进行测试。
Service Worker 当前在 Chrome、Edge、Firefox、Opera 和 Safari 中可用。
设置
导入 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
的调用可以包含 src
和 data-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 安全注意事项的详细信息,请参阅官方规范。
<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 已安装并按预期工作
- 两次访问 amp-install-serviceworker。
- 打开 Chrome Dev Tools 并导航到“资源”选项卡(或较新版本的 Chrome 上的“应用程序”选项卡)。在“Service Worker”部分中,您可以看到已安装
/sw.js
。 - 然后打开“缓存存储”部分。它显示所有缓存的图像和视频。
- 禁用您的网络连接并重新加载此页面。它仍然有效!在 Dev Tools 的“网络”选项卡中,您会看到哪些资源由 Service Worker 缓存。
如果此页面上的解释没有涵盖您的所有问题,请随时与其他 AMP 用户联系,讨论您的确切用例。
转到 Stack Overflow 一个无法解释的功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的长期参与者,但我们也欢迎您对您特别感兴趣的问题做出一次性贡献。
在 GitHub 上编辑示例-
作者: @ymotongpoo