Chrome 96 的新功能

以下是您需要知晓的相关信息:

我是 Pete LePage,终于可以在摄影棚内拍摄了。我们来深入了解一下 Chrome 96 中面向开发者的新功能。

PWA 的清单 id

当用户安装 PWA 时,浏览器需要一种方法来唯一标识它。不过,直到最近,Web 应用清单规范都没有指定如何识别 PWA,而是由浏览器自行决定,这导致了不同的实现方式。在某些浏览器中,使用 start_url;而在另一些浏览器中,使用清单文件的路径。

因此,如果更改这两个字段中的任一字段,都会破坏安装体验。现在,有一个新的可选 id 属性,可让您明确定义用于 PWA 的标识符。

id 属性添加到清单会移除对 start_url 或清单位置的依赖项,并允许更新这些字段。

{
  ...
  id: "/?homescreen=1",
  start_url: "/?homescreen=1",
  ...
}

从 Chrome 96 开始,基于 Chromium 的桌面浏览器支持 id 属性。移动设备(目前使用清单网址作为唯一 ID)的支持应该会在 2022 年上半年推出。

DevTools 显示计算出的应用 ID

如果您已经在正式版中发布了 PWA,并且想要向清单中添加 id,则需要使用浏览器分配的 ID。您可以在“开发者工具”的应用面板的清单窗格中找到 id

对于全新的 PWA,您可以将 id 设置为任何字符串值,但请注意,您日后将无法更改该值,因此请谨慎选择。

{
  ...
  id: "SquooshApp",
  start_url: "/?homescreen=1",
  ...
}

如需了解详情,请参阅使用 Web 应用清单 ID 属性唯一标识 PWA

PWA 的网址协议处理程序

Web 应用可以使用 navigator.registerProtocolHandler() 注册为协议处理程序。例如,Gmail 可以注册 mailto 协议。然后,当用户点击带有 mailto: 前缀的链接时,Gmail 就会打开,让用户能够轻松发送电子邮件。

从 Chrome 96 开始,PWA 可以在安装过程中注册为协议处理程序。如需为 PWA 执行此操作,请将 protocol_handlers 属性添加到 Web 应用清单中,指定要处理的 protocol 以及点击时应打开的 url

  ...
  "protocol_handlers": [
    {
      "protocol": "web+tea",
      "url": "/tea?type=%s"
    },
    {
      "protocol": "web+coffee",
      "url": "/coffee?type=%s"
    }
  ]
}

这里有一些限制,您不能随意注册任何协议,因此请参阅 PWA 的网址协议处理程序注册,了解完整详情以及如何使用 web+ 语法创建自己的协议!

优先级提示(源站试用版)

当浏览器解析网页并开始发现和下载图片、脚本或 CSS 等资源时,会为这些资源分配提取优先级,以便尝试优化网页加载速度。浏览器在分配优先级方面非常出色,但在所有情况下都可能不是最佳选择。

优先级提示是一项实验性功能,从 Chrome 96 开始以源试用的形式提供,可帮助优化核心 Web 指标。借助 importance 属性,您可以为 CSS、字体、脚本、图片和 iframe 等资源类型指定优先级。

<!-- We don't want a high priority for this above-the-fold image -->
<img src="/not-important.svg" importance="low">

<!-- Initiate an early fetch for a resource, but de-prioritize it -->
<link rel="preload" href="/script.js" as="script" importance="low">

<script>
  fetch('https://example.com/', {importance: 'high'})
      .then(data => {
        // Trigger a high priority fetch
      });
</script>

例如,下面是 Google 机票页面。该背景图片就是 Largest Contentful Paint (LCP)。

显示大背景图片的 Google 机票屏幕截图

我们来看看在有和没有优先级提示的情况下,它是如何加载的。将背景图片的优先级设为 high 后,LCP 从 2.6 秒降至 1.9 秒。

如需了解所有详细信息、如何注册参与源代码试用,以及一些示例来了解该 API 如何帮助您提升渲染性能,请参阅使用 Fetch Priority API 优化资源加载

在 UA 字符串中模拟 Chrome 100

明年年初,我们将发布 Chrome 100,这是个三位数版本号。应检查用于检查版本号或解析 UA 字符串的所有代码,确保其能够处理三位数。

从 Chrome 96 开始,有一个新的标志 #force-major-version-to-100,它会将当前版本号更改为 100,以便您确保一切都能按预期运行。

突出显示新 #force-major-version-to-100 选项的 Chrome 标志页面

有关详情,请参阅在 User-Agent 字符串中将 Chrome 的主要版本强制设为 100

Chrome 开发者峰会

Chrome 开发者峰会已圆满落幕。所有视频和内容均可在线观看。请访问 Chrome 开发者峰会网站。如果您错过了主题演讲或直播,请访问 Chrome 开发者 YouTube 频道上的 CDS 播放列表

等等!

当然,还有许多其他功能。

  • 返回/前进缓存(即 bfcache)现已推出稳定版,使 Chrome 与 Firefox 和 Safari 保持一致。

深入阅读

本文仅介绍了一些主要亮点。如需了解 Chrome 96 中的其他变更,请点击以下链接。

订阅

如需及时了解最新动态,请订阅 Chrome 开发者 YouTube 频道,这样每当我们发布新视频时,您就会收到电子邮件通知。

我是 Pete LePage,Chrome 97 发布后,我会立即为您介绍 Chrome 中的新变化!