1.什么是懒加载?
懒加载也叫延迟加载,当访问一个页面的时候,想把img元素或是或是其他元素背景图片路径替换成一张大小为1*1px的图片的路径(这样只需请求一次俗称占位),只有图片出现在浏览器的可视区域内时才设置图片的真实路径,让图片显示出来,这就是图片懒加载。
2.为什么使用懒加载?
很多页面内容丰富页面较长图片较多例如商城网站,而且还比较大多说能上兆,要是页面第一次载入就全部加载完毕的话估计黄花菜都凉了。对于这种页面有很多静态资源的情况下,为了节省用户流量和提高页面性能,可以在用户浏览到当前资源的时候,再对资源进行请求和加载。
3.懒加载原理是什么?
页面中的img元素,如果没有src属性,浏览器就不会发出请求去下载图片,只有通过javascript设置了图片路径,浏览器才会发送请求。 懒加载的原理就是先在页面中把所有的图片统一使用一张占位图进行占位,把正真的路径存在元素的“data-url”(这个名字起个自己认识好记的就行)属性里,要用的时候就取出来,再设置。
4.懒加载实现步骤。
1).首先,不要将图片地址放到src属性中,而是放到其它属性(data-original)中。
2).页面加载完成后,根据scrollTop判断图片是否在用户的视野内,如果在,则将data-original属性中的值取出存放到src属性中。
3).在滚动事件中重复判断图片是否进入视野,如果进入,则将data-original属性中的值取出存放到src属性中。
5.懒加载的有点。
页面加载速度快,减轻服务器压力,节省流量,提升用户体验
预加载
1.什么是预加载?
提前加载图片,用户需要时可以直接从本地缓存中渲染。
2.为什么使用预加载?
图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度。这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速、无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验。
3.实现预加载的方法有哪些?
1).用CSS和JavaScript实现预加载
2).仅使用JavaScript实现预加载
3).使用Ajax实现预加载 详见:http://web.jobbole.com/86785/
4.懒加载和预加载的对比
1).概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。 预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。
2).区别:两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。
3).懒加载的意义及实现方式有:实现预载的方法非常多,比如:用CSS和JavaScript实现预加载;仅使用JavaScript实现预加载;使用Ajax实现预加载。 常用的是new Image();设置其src来实现预载,再使用onload方法回调预载完成事件。只要浏览器把图片下载到本地,同样的src就会使用缓存,这是最基本也是最实用的预载方法。当Image下载完图片头后,会得到宽和高,因此可以在预载前得到图片的大小(方法是用记时器轮循宽高变化)。
意义: 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。
实现方式:
1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某图片前一定距离遍开始加载,这样能保证用户拉下时正好能看到图片。