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

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

2024-04-30 11:04:08 前端知识 前端哥 109 125 我要收藏

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

✨ 个人主页: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://www.qianduange.cn//article/6663.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!