gpt4 book ai didi

svelte - 延迟加载图像( slim /工兵)

转载 作者:行者123 更新时间:2023-12-03 20:17:04 24 4
gpt4 key购买 nike

在 Sapper 中执行这种延迟加载的最佳方法是什么:

  • 导航到包含图像的页面
  • 首先从src下载小图片
  • 开始从 data-src 加载更大的版本并将其更改为 src
    准备好时
  • 导航到另一个页面
  • 回到图片页面,已经在那里加载了更大的图片

  • 如果有人可以提供帮助,我会很高兴:)

    最佳答案

    您正在寻找 actions .这些函数在将元素添加到 DOM 时运行,并返回一个带有 destroy 的对象。和(可选)update方法。

    你可以做这样的事情( interactive demo here ):

    <img
    alt="random photo"
    src="https://picsum.photos/100/50"
    use:lazy="{src: 'https://picsum.photos/400/200'}"
    >

    <style>
    img {
    width: 400px;
    height: 200px;
    }
    </style>

    <script>
    const loaded = new Map();

    export default {
    actions: {
    lazy(node, data) {
    if (loaded.has(data.src)) {
    node.setAttribute('src', data.src);
    } else {
    // simulate slow loading network
    setTimeout(() => {
    const img = new Image();
    img.src = data.src;
    img.onload = () => {
    loaded.set(data.src, img);
    node.setAttribute('src', data.src);
    };
    }, 2000);
    }

    return {
    destroy(){} // noop
    };
    }
    }
    };
    </script>

    关于svelte - 延迟加载图像( slim /工兵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043557/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com