Chrome 本机图像延迟加载仅在 iframe 内有效

Chrome native image lazy loading works inside iframe only

Chrome 81,FF 75(今天最新)

in Chrome 本机图像延迟加载仅在 iframe 内有效。为什么?在 FF 中效果很好

page1.htm(延迟加载在 Chrome 中不起作用,但在 FF 中效果很好):

<p style="margin-bottom: 1000px;">Please scroll down. The image is below the viewport.</p>
<p style="margin-bottom: 1000px;">Please scroll down. The image is below the viewport.</p>
<img src="https://wallpaperplay.com/walls/full/5/e/a/218959.jpg" loading="lazy">

page2.htm(通过 iframe 延迟加载在 Chrome 和 FF 中都有效):

<iframe src="page1.htm">

是Chrome的bug吗?在 FF 中效果很好

(您可以通过滚动和开发者工具 -> 网络检查图像延迟加载)

我遇到了同样的问题,但 仅当图像离视口 足够。否则它会被延迟加载。

请尝试打开 Chrome 中的这个最小工作示例,然后慢慢向下滚动页面。当视口大约位于页面中间时,将加载图像。

<html>
    <head>
        <style>
            .dummy {
                height: 700vh;
            }
        </style>
    </head>
    <body>
        <div class="dummy"></div>
        <img src="https://yasminfinch.com/wp-content/uploads/2015/03/Hello-icon-300x212.jpg" loading="lazy">
    </body>
</html>

没有信心,我可以认为这是一个功能,而不是错误。某种优化。它减少了看到图像正在加载的机会,例如,当用户滚动 up/down 足够快时。

在我的例子中,我必须显式地设置 width 属性,无论是内联还是在 CSS 文件中。

其实你可以试试original demo。如果您在此演示中删除宽度和高度属性,Chrome 上的延迟加载将不起作用。