见过懒加载吗?

什么是HTML懒加载页面?

懒加载也就是延迟加载。javascript

当你浏览网页的时候,常常会看到一些优秀的动态效果。
它们不预先加载,只有当这部分呈如今你的视野中时,动态效果才会逐渐显现,咱们将其称为懒加载,下图是产品刚弹出时的样子前端

在这里插入图片描述
下面这张图是彻底弹出时的样子java

在这里插入图片描述

为何要使用懒加载?web

不少页面,内容很丰富,页面很长,图片较多。好比说各类商城页面。这些页面图片数量多,并且比较大,少说百来K,多则几十M。要是页面载入时就一次性加载完毕,浪费大把的时间不说,当网络情况很差时,也很是影响用户的直观体验。浏览器

懒加载的原理是什么?缓存

页面中的img元素,若是没有src属性,浏览器就不会发出请求去下载图片,只有经过javascript设置了图片路径,浏览器才会发送请求。
懒加载的原理就是先在页面中把全部的图片统一使用一张占位图进行占位,把正真的路径存在元素的“data-url”(这个名字起个本身认识好记的就行)属性里,要用的时候就取出来,再设置;服务器

怎样实现懒加载?网络

1)首先,不要将图片地址放到src属性中,而是放到其它属性(data-original)中。
2)页面加载完成后,根据scrollTop判断图片是否在用户的视野内,若是在,则将data-original属性中的值取出存放到src属性中。
3)在滚动事件中重复判断图片是否进入视野,若是进入,则将data-original属性中的值取出存放到src属性中。异步

懒加载的有点是:更加快捷的把页面展现给用户,避免了图片加载时的尴尬体验,减轻网络压力的同时,制造出一些花哨的动画效果。

什么是预加载?

提早加载图片,当用户须要查看时可直接从本地缓存中渲染前端性能

为何要使用预加载?

图片预先加载到浏览器中,访问者即可顺利地在你的网站上冲浪,并享受到极快的加载速度。这对图片画廊及图片占据很大比例的网站来讲十分有利,它保证了图片快速、无缝地发布,也可帮助用户在浏览你网站内容时得到更好的用户体验。

怎么实现预加载?

方法一:用CSS和JavaScript实现预加载
方法二:仅使用JavaScript实现预加载
方法三:使用Ajax实现预加载

懒加载和预加载的对比

1)概念:
懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。
预加载:提早加载图片,当用户须要查看时可直接从本地缓存中渲染。

2)区别:
两种技术的本质:二者的行为是相反的,一个是提早加载,一个是迟缓甚至不加载。
懒加载对服务器前端有必定的缓解压力做用,预加载则会增长服务器前端压力。
3)懒加载的意义:
懒加载的主要目的是做为服务器前端的优化,减小请求数或延迟请求数。

懒加载的实现方式:

1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.第三种是可视区加载,即仅加载用户能够看到的区域,这个主要由监控滚动条来实现,通常会在距用户看到某图片前必定距离遍开始加载,这样能保证用户拉下时正好能看到图片。

预加载的意义及实现方式:

意义:
预加载能够说是牺牲服务器前端性能,换取更好的用户体验,这样可使用户的操做获得最快的反映。
实现方式:
1)用CSS和JavaScript实现预加载;
2)仅使用JavaScript实现预加载;
3)使用Ajax实现预加载。
经常使用的是new Image();设置其src来实现预载,再使用onload方法回调预载完成事件。
只要浏览器把图片下载到本地,一样的src就会使用缓存,这是最基本也是最实用的预载方法。
当Image下载完图片头后,会获得宽和高,所以能够在预载前获得图片的大小(方法是用记时器轮循宽高变化)。



部份内容来自网络
display与visibility