前端复习--图片加载

本文介绍了即时加载和延迟加载两种图片加载方式的原理及其应用场景。详细解释了如何通过延迟加载技术来提高页面加载速度,减少不必要的资源消耗。同时对比了使用background-img与<img>标签加载图片的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 https://segmentfault.com/a/1190000002433791

即时加载是最常见的加载方式了,我们一般都是通过给img标签指定具体的src值,那么等页面渲染的时候,遇到该标签的话,就会下载该指定的URL图片,并且渲染出来


  • 大部分浏览器都会并发下载图片,图片的下载没有阻塞。
  • src的值如果相同,也只会下载一次,也就是说相同的图片,不会多次下载。
  • 图片的下载和渲染会阻塞整个页面的渲染。
  • 图片越大,下载的时间也就越长。

图片延迟加载的原理:页面初次加载时获取图片在页面中的位置并缓存(每次取offset的值会引发页面的reflow),计算出可视区域,当图片的位置出现在可视区域中,将src的值替换成真实的地址,此时图片就开始加载了。

当页面滚动的时候,再判断图片已经缓存的位置值是否出现在可视区域内,进行替换src加载。当所有的图片都加载完之后,将相应的触发事件卸载,避免重复操作引起的内存泄漏。将整个窗口看成是一个大容器,那么也可以在页面中设置一个小容器,在小容器中也同样可以实现图片的延迟加载。

像淘宝、天猫等电商就大量采用了该技术,因为对它们来说,要展示的图片太多了,即时加载又非常耗时间,而且用户不一定会看完所有的图片。采用延迟的加载基本上就能解决图片过多的问题

2 background-img 与 <img> 加载的图片的区别

 https://my.oschina.net/u/1162572/blog/137403

在粗读过浏览器的工作原理(http://coolshell.cn/articles/9666.html)之后我知道:

浏览器首先将HTML解析成DOM tree,然后解析css生成css rule tree,将这个tree并进行一些处理之后,生成render tree。render tree就是浏览器依据绘制网页的原料了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值