0


前端经典面试题 | 性能优化之 懒加载

🖥️ 前端经典面试题专栏:性能优化之 懒加载
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


一、回答点

在网页中延迟加载图片数据,提升用户体验,减少无用资源加载

二、深入回答

懒加载的概念

    懒加载又叫 延迟加载、按需加载,在网页中延迟加载图片数据,是一个比较好的网页性能优化的方式之一。在较长的网页中,如果图片数据很多美,所有的图片一下都被加载出来,而用户只能看到可视窗口的一部分图片数据,这样就浪费了性能。

懒加载的特点

** 减少无用资源的加载:**使用懒加载明显减少了服务器的压力,也减少了浏览器的负担。

    **提升用户的体验:**同时加载很多图片,用户需要等待的时间较长,会影响用户体验,使用了懒加载可以大大的提高用户体验。

   ** 防止加载过多图片影响其他资源文件的加载:**影响网站应用的正常使用

懒加载的实现原理

    图片的加载是由src引起的,当你对src进行赋值时,浏览器就会请求图片资源,根据它我们可以使用HTML5的 data-xxx 属性来存储图片路径,在需要加载图片的时候 将 data-xxx 中图片的路径赋值给src 就实现了图片的懒加载。

    data-xxx中的xxx可以是自定义的,这里使用data-coder来定义。

    懒加载的实现在于用户需要加载哪张图片,在浏览器中,可视区域内的资源就是需要的资源。当图片出现在可视区域内时,获取图片的真实地址并赋值给图片

    window.innerHeight =》 浏览器可视的高度

    document.body.scrollTop || document.documentElement.scrollTop =》 浏览器滚动过的距离

    imgs.offsetTop =》 是元素顶部距离文档顶部的高度(包括滚动条距离)

    图片加载条件: img。offsetTop < window.innerHeight + document.body.scrollTop

代码实现:

// 首先获取到 所有图片
let imgs = document.querySelectorAll('img');
function load() {
    let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
    let heightT = window.innerHeight;
    for(let i = 0; i < imgs.length; i++) {
        if(imgs[i].offsetTop < scrollTop + heightT ){
            imgs[i].src = imgs[i].getAttribute('data-coder')
        }
    }
}
window.onscroll = load()

懒加载和预加载的区别

    懒加载和预加载都是提高网页性能的方式,他们的区别是  一个为提前加载,一个为慢加载甚至不加载。懒加载对服务器有一定的缓解压力作用,而预加载会增加服务器的压力。

本文转载自: https://blog.csdn.net/coderHing/article/details/127852833
版权归原作者 coderHing 所有, 如有侵权,请联系我们删除。

“前端经典面试题 | 性能优化之 懒加载”的评论:

还没有评论