视频作为图像的回退

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程的每个阶段提供云产品。立即开始使用 200 美元的免费信用额度!

Safari 11.1 发布了一个奇怪但非常有用的功能:能够在 <img> 标签中使用视频源。其理念是它与 GIF 的作用相同(静音、自动播放、重复),但具有很大的性能提升。有多大?“比 GIF 等效快 20 倍,解码速度快 7 倍,” Colin Bendell 说

并非所有浏览器都支持此功能,因此,为了执行回退,<picture> 元素已准备就绪。 Bruce Lawson 展示 了它的易用性。

<picture>
  <source type="video/mp4" srcset="adorable-cat.mp4">
  <!-- perhaps even an animated WebP fallback here as well -->
  <img src="adorable-cat.gif" alt="adorable cat tears throat out of owner and eats his eyeballs">
</picture>

Šime Vidas 指出,使用 <video> 标签可以获得更广泛的浏览器支持。

<video src="https://media.giphy.com/media/klIaoXlnH9TMY/giphy.mp4" muted autoplay loop playsinline></video>

但正如 Bendell 所指出的那样,视频并没有带来性能优势,尤其是视频没有得到预加载器的帮助。遗憾的是,目前只能使用 <video>因为

存在这个 令人讨厌的 WebKit 错误,它会导致 Safari 在预加载器下载第一个 <source>,无论 mimetype 声明如何。主 DOM 加载器会意识到错误并选择正确的选项。但是,损害已经造成。预加载器浪费了提前下载图像的机会,而且还会下载错误的版本,浪费字节。好消息是我已经修补了这个错误,它应该会在 Safari TP 45 中发布。

简而言之,在 Safari 的下一个版本达到 90% 以上的用户群之前,不建议使用 <picture><source type> 进行 mime 类型选择。

尽管如此,最终它还是非常有用。