首页 > 解决方案 > 预加载响应式图像标签

问题描述

我需要预加载在<picture>标签中设置的响应图像:

<picture>
<source sizes="(max-width: 320px) 320px, (max-width: 480px) 480px, (max-width: 768px) 768px, (max-width: 1024px) 1024px, (max-width: 1200px) 1200px, 1500px" srcset="home-image1-bis2-1200x640.webp 1200w, home-image1-bis2-1024x546.webp 1024w, home-image1-bis2-768x410.webp 768w, home-image1-bis2-480x256.webp 480w, home-image1-bis2-320x171.webp 320w, home-image1-bis2.webp 1500w" type="image/webp">
</picture>

我找到了这个链接:https://web.dev/preload-responsive-images/ 我试着像这样应用它:

<link rel="preload" href=home-image1-bis2-320x171.webp" as="image" type="image/webp" media="(max-width: 320px)">
<link rel="preload" href="home-image1-bis2-480x256.webp" as="image" type="image/webp" media="(min-width: 320.1px) and (max-width: 480px)">
<link rel="preload" href="home-image1-bis2-768x410.webp" as="image" type="image/webp" media="(min-width: 480.1px) and (max-width: 768px)">
<link rel="preload" href="home-image1-bis2-1024x546.webp" as="image" type="image/webp" media="(min-width: 768.1px) and (max-width: 1024px)">
<link rel="preload" href="home-image1-bis2-1024x546.webp" as="image" type="image/webp" media="(min-width: 1024.1px) and (max-width: 1200px)"><link rel="preload" href="home-image1-bis2.webp" as="image" type="image/webp" media="(min-width: 1200.1px)">

它似乎不起作用,控制台现在也记录了这个通知:

资源home-image1-bis2-480x256.webp是使用链接预加载预加载的,但在窗口加载事件后的几秒钟内未使用。请确保它具有适当的as值并且是有意预加载的。

而且这对灯塔分数的LCP没有影响。
如何正确加载图像?

标签: preloadresponsive-images

解决方案


您可以在此用例中使用imagesrcset和属性:imagesizes

<link 
    rel="preload"
    as="image"
    type="image/webp"
    imagesrcset="home-image1-bis2-1200x640.webp 1200w, home-image1-bis2-1024x546.webp 1024w, home-image1-bis2-768x410.webp 768w, home-image1-bis2-480x256.webp 480w, home-image1-bis2-320x171.webp 320w, home-image1-bis2.webp 1500w"
    imagesizes="(max-width: 320px) 320px, (max-width: 480px) 480px, (max-width: 768px) 768px, (max-width: 1024px) 1024px, (max-width: 1200px) 1200px, 1500px"
>

请参阅https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset
https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesizes


推荐阅读