面试高频手撕题 | 66.lazy-load实现
一、知识点
-
懒加载
:也称为延迟加载,是一种网页设计技术,它在用户需要时才加载页面的特定部分,而不是在页面加载时一次性加载所有内容。这可以提高页面的加载速度,减少初始加载时间,并节省用户的流量。 -
Intersection Observer API
:这是一个 JavaScript API,用于异步检测目标元素与视口的交集情况。通过这个 API,可以在元素进入或退出视口时触发相应的回调函数,从而实现懒加载功能。
二、思路分析
-
创建一个
懒加载
函数,该函数接受一个img
元素作为参数。 -
在函数内部,使用
Intersection Observer API
来监听img
元素与视口的交集情况。 -
如果
img
元素进入了视口,将其src
属性设置为真实的图片路径,从而加载图片。 -
如果
img
元素退出了视口,将其src
属性设置为空字符串,从而卸载图片。
三、JavaScript 解答
以下是使用 JavaScript 实现懒加载
的示例代码:
// 懒加载函数
function lazyLoadImage(img) {
// 创建 IntersectionObserver 实例
const observer = new IntersectionObserver((entries, observer) => {
// 处理进入视口的元素
entries.forEach(entry => {
if (entry.isIntersecting) {
// 设置图片的 src 属性为真实路径
img.src = entry.target.dataset.src;
// 停止
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024前端面试高频手撕题 文章被收录于专栏
2024前端面试高频手撕题的作用包括但不限于提升面试竞争力、检验基础知识掌握程度、提高问题解决能力等。本专栏从知识点,思路分析,JavaScript解答,Java解答,总结等五个方面全方面解答。适用于:准备前端开发岗位面试的求职者、希望提升前端开发技能和知识的学习者、准备升职或跳槽的前端开发人员。掌握面试高频手撕题都是非常有益的,它能够帮助你建立起扎实的前端基础知识和问题解决能力。