搜 索
热搜词
刘亦菲
吴宣仪
杨晨晨
关晓彤
林星阑
summer宝宝
唐嫣
唐安琪
张雪馨
首页
Portal
社区
BBS
话题
Guide
圈子
Group
淘帖
Collection
头条
广播
follow
动态
已有账号?
登录账号
游客请注册
立即注册
其他方式登录
QQ
微信
微博
标签标签
插件插件
日志日志
相册相册
分享分享
记录记录
排行榜
工具工具
魔力剪辑
»
社区
›
剪辑讨论区
›
AE资源
›
网站图片打开太慢,何为懒加载?原理又是什么?网站图片 ...
AE资源
“不懂就问”是有前提条件的 生活中我们经常遇到这样的人,什么事情自己不看、不听、不思考,就去问别人。 做过客服工作、带过团队、做过一些与人沟通工作的人一定有这样的经历,在此不懂就要多问问
3帖子
7讨论
0关注
关注本版
发表新帖
网站图片打开太慢,何为懒加载?原理又是什么?网站图片打开太慢,何为懒加载?原理又是什么?网站图片打开太慢,何为懒加载?原
店小二
发表于 2023-2-28 02:32:05
|
显示全部楼层
|
阅读模式
948
1
1
金币
网站图片打开太慢,何为懒加载?原理又是什么?
最佳答案
风华绝代
查看完整内容
1 懒加载的概念 懒加载也叫做 延迟加载、按需加载 ,指的是在长网页中延迟加载图片数据,是一种较好的网页性能优化的方式。在比较长的网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。 如果使用图片的懒加载就可以解决以上问题。在滚动屏幕之前,可视化区域之外的图片不会进行加载,在滚动屏幕时才加载。这样使得网页的加载速度更快,减少了服务器的负载。懒 ...
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
全部评论
正序浏览
倒序浏览
风华绝代
风华绝代
本帖最后由 风华绝代 于 2023-2-28 02:38 编辑
1 懒加载的概念
懒加载也叫做 延迟加载、按需加载 ,指的是在长网页中延迟加载图片数据,是一种较好的网页性能优化的方式。在比较长的网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。
如果使用图片的懒加载就可以解决以上问题。在滚动屏幕之前,可视化区域之外的图片不会进行加载,在滚动屏幕时才加载。这样使得网页的加载速度更快,减少了服务器的负载。懒加载适用于图片较多,页面列表较长(长列表)的场景中。
2 懒加载的特点
减少无用资源的加载:使用懒加载明显减少了服务器的压力和流量,同时也减小了浏览器的负担。
提升用户体验: 如果同时加载较多图片,可能需要等待的时间较长,这样影响了用户体验,而使用懒加载就能大大的提高用户体验。
防止加载过多图片而影响其他资源文件的加载 :会影响网站应用的正常使用。
3 懒加载的实现原理
图片的加载是由src引起的,当对src赋值时,浏览器就会请求图片资源。根据这个原理,我们使用HTML5 的data-xxx属性来储存图片的路径,在需要加载图片的时候,将data-xxx中图片的路径赋值给src,这样就实现了图片的按需加载,即懒加载。
注意:data-xxx 中的xxx可以自定义,这里我们使用data-src来定义。
懒加载的实现重点在于确定用户需要加载哪张图片,在浏览器中,可视区域内的资源就是用户需要的资源。所以当图片出现在可视区域时,获取图片的真实地址并赋值给图片即可。
使用原生JavaScript实现懒加载:
知识点:
(1)window.innerHeight 是浏览器可视区的高度
(2)document.body.scrollTop || document.documentElement.scrollTop 是浏览器滚动过的距离
(3)imgs.offsetTop 是元素顶部距离文档顶部的高度(包括滚动条的距离)
(4)图片加载条件:img.offsetTop < window.innerHeight + document.body.scrollTop;
示例:
<div class="container">
<img src="loading.gif" data-src="pic.png">
<img src="loading.gif" data-src="pic.png">
<img src="loading.gif" data-src="pic.png">
<img src="loading.gif" data-src="pic.png">
<img src="loading.gif" data-src="pic.png">
<img src="loading.gif" data-src="pic.png">
</div>
<script>
var imgs = document.querySelectorAll('img');
function lozyLoad(){
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
var winHeight= window.innerHeight;
for(var i=0;i < imgs.length;i++){
if(imgs.offsetTop < scrollTop + winHeight ){
imgs.src = imgs.getAttribute('data-src');
}
}
}
window.onscroll = lozyLoad();
</script>
4 懒加载与预加载的区别
这两种方式都是提高网页性能的方式,两者主要区别是一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。
懒加载也叫延迟加载,指的是在长网页中延迟加载图片的时机,当用户需要访问时,再去加载,这样可以提高网站的首屏加载速度,提升用户的体验,并且可以减少服务器的压力。它适用于图片很多,页面很长的电商网站的场景。懒加载的实现原理是,将页面上的图片的 src 属性设置为空字符串,将图片的真实路径保存在一个自定义属性中,当页面滚动的时候,进行判断,如果图片进入页面可视区域内,则从自定义属性中取出真实路径赋值给图片的 src 属性,以此来实现图片的延迟加载。
预加载指的是将所需的资源提前请求加载到本地,这样后面在需要用到时就直接从缓存取资源。 通过预加载能够减少用户的等待时间,提高用户的体验。我了解的预加载的最常用的方式是使用 js 中的 image 对象,通过为 image 对象来设置 scr 属性,来实现图片的预加载。
2023-2-28 02:32:06
•
回复
道具
举报
照妖镜
快速评论
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
发表评论
回帖并转播
回帖后跳转到最后一页
店小二
主题
1
积分
40045
粉丝
1
+关注
私信
TA的帖子
网站图片打开太慢,何为懒加载?原理又是什么?网站图片打开太慢,何为懒加载?原理又是什么?网站图片打开太慢,何为懒加载?原
2023-2-28
发布
联系QQ
返回顶部