[转]前端懒加载以及预加载

写在前面的话:

  原文链接:前端懒加载以及预加载

 
懒加载(延迟加载):延迟加载图片或符合某些条件时才加载某些图片。

预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。

两种技术的本质:
两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。
 
懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。

1.懒加载:

意义: 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。

实现方式:

1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟。
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条
 时正好能看到图片。

2.预加载:

意义: 牺牲服务器前端性能,换取更好的用户体验,这样可以使用户的操作得到最快的反映。

实现方式:

实现预载的方法非常多,可以用CSS(background)、JS(Image)、HTML(<img />)都可以。
常用的是new Image();设置其src来实现预载,再使用onload方法回调预载完成事件。
只要浏览器把图片下载到本地,同样的src就会使用缓存,这是最基本也是最实用的预载方法。
当Image下载完图片头后,会得到宽和高,因此可以在预载前得到图片的大小(方法是用记时器轮循宽高变化)。
 
 
 
 
 
posted @ 2017-03-09 13:41  Chrisreen  阅读(383)  评论(0编辑  收藏  举报