图片的懒加载和预加载?

一、写在前面
图片的懒加载和图片的预加载都是前端性能优化的一个方案,当然可能存在不同的应用场景,下面我们将总结一下这两个方案。
二、图片懒加载
图片的懒加载是什么?
图片的懒加载指的是在长网页中延迟加载图像,是一种很好的优化网页性能的方式。用户滚动到他们之前,可视区域之外的图像是不会加载的。在某种情况下,他还可以帮助减少服务器负载,常适使图片很多,页面很长的电商网站场景中。
为什么要使用懒加载?

可以提升用户体验:我们可以想一下,当用户打开手机淘宝的话,如果页面上全部的图片都需要加载,由于图片
数量巨大,等待的时间就很长,用户体验就很不好。
减少无用的资源加载:如果用户都没有去查看相应的内容,而我们却需要加载,此时就会增加浏览器的负担。
防止并发资源过多导致阻塞js的加载。

懒加载的实现原理

首先先将页面上的图片的src地址设置为空字符串,而图片上的真实路径设置在data-original属性中,当页面
发生滚动时需要去监听scroll事件,在scroll事件的回调中,判断我们的懒加载的图片是否进入可视区域,如
果图片在可视区域的话将src设置为data-original的值,这样就达到了延迟加载的效果。

三、预加载
什么是预加载

预加载就是将所需的资源提前加载到本地,这样当用户使用到该资源时,就会自动从缓存中取出。

预加载实现方法
1、用html标签

<img src="http://pic26.nipic.com/20121213/6168183 0044449030002.jpg" style="display:none"/>
这样当我们进行加载页面时,也会加载src中的图片资源,此时该图片就会缓存到本地,当我们使用到该图片
时,就会自动读取缓存中的内容。

2、使用Image对象

<script src='./myPreload.js'></script>

//myPreload.js文件
var image = new Image()
image.src="http://pic26.nipic.com/20121213/6168183 004444903000 2.jpg"

3、使用XMLHTTPRequest对象

这里我是这样理解的,因为XMLHTTPRequest创建的是异步ajax请求对象,当我们加载完其他内容时,此时我们
可以使用ajax进行加载资源,此时并不会对页面产生不好的效果。此时当我们加载完毕后,在后面如果我们使用
到该资源时,就会从缓存中读取出来,加载就会很快。

四、懒加载和预加载的对比

两者都是提高页面性能的有效方法,懒加载是迟缓加载或者是不进行加载,预加载是提前加载。但是预加载会增
加服务器压力。
<think>首先,用户的问题是:“说一下图片懒加载预加载”。我需要用中文回答这个问题。 关键点: - 懒加载(Lazy Loading):指的是在需要时才加载图片,而不是在页面加载时就加载所有图片。这可以节省带宽提高页面加载速度,特别是对于有大量图片的页面。 - 预加载(Preloading):指的是在页面加载时提前加载图片,以便在用户需要时立即显示,减少延迟。 我的回答应该清晰、简洁地解释这两个概念,包括它们的定义、优缺点适用场景。 回答结构: 1. 先介绍懒加载。 2. 然后介绍预加载。 3. 比较两者的区别适用情况。 4. 最后,提出3-5个相关问题。 在回答末尾,我必须输出“§§相关问题§§”,然后列出3-5个相关问题。问题必须基于用户的问题我的回答。 相关问题应该: - 围绕懒加载预加载的主题。 - 鼓励进一步思考或学习。 - 例如:如何实现懒加载懒加载有什么缺点?预加载在什么场景下使用?等等。 列出3-5个相关问题: 1. 如何在前端实现图片懒加载? 2. 懒加载有哪些潜在的缺点? 3. 预加载适用于哪些具体的应用场景? 4. 懒加载预加载在SEO优化方面有什么影响? 5. 有没有结合懒加载预加载的策略? 确保输出格式:在回答后,直接输出“§§相关问题§§”,然后列出问题,用数字点号,不要换行分散。示例中是“1. ···”,所以我应该用“1. ”、“2. ”等。 完整回答: - 先写回答部分。 - 然后以“§§相关问题§§”开头新行。 - 接着是问题列表。 用中文回答,所以整个内容都用中文。 最终回答草稿: - 懒加载解释:图片懒加载是一种优化技术,只在用户滚动到图片位置时才加载图片,减少初始页面加载时间。 - 预加载解释:图片预加载是在页面加载时提前加载图片,确保在用户需要时图片已准备好,提升用户体验。 - 比较:懒加载适合长页面或图库,预加载适合关键资源如首屏图片。 然后相关问题: §§相关问题§§ 1. 如何在前端实现图片懒加载? 2. 懒加载有哪些缺点需要注意? 3. 预加载在哪些场景下最有效? 4. 懒加载预加载对网站性能的影响如何?</think>### 图片懒加载预加载 **懒加载(Lazy Loading)**: 懒加载是一种优化技术,指的是图片仅在需要显示时才加载(例如当用户滚动到图片位置时)。这可以显著减少初始页面加载时间、节省带宽,并提升用户体验。常用于长页面、图库或电商网站。 - **优点**:降低服务器负载、提高页面加载速度、节省用户流量。 - **缺点**:可能导致图片加载延迟(如果滚动过快)、需依赖JavaScript实现。 - **实现方式**:通常使用HTML的`loading="lazy"`属性或JavaScript监听滚动事件。 **预加载(Preloading)**: 预加载是一种策略,在页面初始加载时就提前加载图片资源(即使尚未显示),确保在用户需要时立即可用。适用于关键资源(如首屏图片或导航元素)。 - **优点**:减少用户操作后的等待时间、提升交互流畅度。 - **缺点**:增加初始加载负担、可能浪费带宽(如果用户未访问)。 - **实现方式**:通过HTML的`<link rel="preload">`标签或CSS的`background-image`属性。 **比较与适用场景**: - **懒加载**更适合内容丰富的页面(如新闻网站或社交媒体),以优化性能。 - **预加载**更适合交互频繁的应用(如游戏或幻灯片),确保即时响应。 - 两者可结合使用:例如,预加载首屏图片懒加载剩余内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值