javascript - Chrome 中的原生延迟加载

标签 javascript html google-chrome web lazy-loading

6 月,Chrome 添加了对loading 属性 的支持,但它对我不起作用。 图像不在视口(viewport)中时正在加载。

  1. My network info in DevTools

  2. 用户代理:Chrome/75.0.3770.80

  3. chrome://flags

    中启用延迟图像加载
  4. 我的测试页:

    <p style="margin-bottom: 1000px;">Please scroll down. The image is below the viewport.</p>
    <p style="margin-bottom: 1000px;">Way to go&hellip;</p>
    
    <h4>Lazy cat loaded lazily</h4>
    <p>If your browser supports native lazy-loading, it loads the first 2 kB of the image in order to display a
        placeholder. Then, it loads the full-size image.</p>
    <p>If your browser does not support native lazy-loading, it loads the lazysizes library and sets the
        <code>img</code>'s <code>src</code> to a low-quality image placeholder, which is also around 2 kB in size. Then,
        it loads the full-size image.</p>
    <div class="alert alert-warning">The native lazy-loading's 2 kB range request do not work from within Codepen.
        However, you can make this work by copying this to an empty HTML file on your computer.</div>
    <!-- <img src="https://demo.tiny.pictures/native-lazy-loading/lazy-cat.jpg?width=500"
        loading="lazy" alt="Lazy cat loaded lazily"> -->
    <img src="images/article/photo.jpg" loading="lazy" alt="Lazy turtle">
    
    
    <script>
        if ('loading' in HTMLImageElement.prototype) {
            console.log('YES');
        } else {
            console.log('NO');
        }
    </script>
    

你能告诉我,我做错了什么或者这个属性是原始的并且不起作用吗?

最佳答案

  • Chrome 75:您需要使用以下标志 ( more details ) 启用延迟加载 + 重新启动浏览器才能使它们生效:
chrome://flags/#enable-lazy-image-loading
chrome://flags/#enable-lazy-frame-loading
  • Chrome 76+: native 延迟加载默认可用 (source)。

关于javascript - Chrome 中的原生延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594137/

相关文章:

javascript - 如何使用 JS 访问元素的属性?

javascript - 为等效的其他 ID 添加类

javascript - 在 Chrome 扩展中确定用户是否点击了浏览器的后退或前进按钮

javascript - 单击按钮时如何在另一个页面上显示按钮名称

javascript - 从 JavaScript 触发服务器端电子邮件,无需回发

javascript - jQuery 不触发单选按钮更改

javascript - 如何使用 window.open() 打开弹出窗口,确认消息为 Yex/No?

javascript - Angular 选择框在第一次更改时不起作用

html - 一个 100vh 高度的 div,包含 3 个 div,其中第二个应该是唯一一个具有可变高度的

c# - 如何打开给定尺寸的chrome浏览器