javascript图片预加载和延时加载的区别

这两个效果混淆了,javascript图片预加载是做什么用的?javascript图片延时加载又是做什么用的?帮解释下就行,不用贴代码,也不要长篇大论,简单易懂即可。... 这两个效果混淆了,
javascript图片预加载是做什么用的?
javascript图片延时加载又是做什么用的?
帮解释下就行,不用贴代码,也不要长篇大论,简单易懂即可。
展开
 我来答
金刚钻Johnny
推荐于2017-09-03 · TA获得超过356个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:57.6万
展开全部
javascript图片预加载和延时加载的区别主要体现在图片传输到客户端的时机上,都是为了提升用户体验的,延时加载又叫懒加载。
两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。
预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。
实现方式: 可以用CSS(background)、JS(Image)、HTML(<img />)都可以。常用的是new Image();设置其src来实现预载,再使用onload方法回调预载完成事件。只要浏览器把图片下载到本地,同样的src就会使用缓存,这是最基本也是最实用的预载方法。当Image下载完图片头后,会得到宽和高,因此可以在预载前得到图片的大小(方法是用记时器轮循宽高变化)。
懒加载:主要目的是作为服务器前端的优化,减少请求数或延迟请求数,一些图片非常多的网站中非常有用,在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才加载,这样对于含有很多 图片的比较长的网页来说,可以加载的更快,并且还能节省服务器带宽。,实现方式:
1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.jQuery插件中也有插件来实现该功能。
4.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某图片前一定距离遍开始加载,这样能保证用户拉下时正好能看到图片。
预加载核心代码参考:
document.getElementById("preload-01").style.background = "url(http://expsoft.com/image-01.png) no-repeat -9999px -9999px";

img1 = new Image();img1.src = "http://expsoft.com/path/to/image-001.gif";
if (img1.complete) { ready.call(img); load && load.call(img);
callback.call(img1,img1.width, img1.height);
return; }// 直接返回,不用再处理onload事件
img1.onload = function(){ callback.call(img1,img1.width, img1.height); };
懒加载核心代码参考:
.lazy {
display: none;
}
<img class="lazy" src="img/grey.gif" data-original="img/example.jpg" width="640" heigh="480">
必须在 DOM ready 时将占位符显示出来, 这可以在插件初始化的同时完成.

$("img.lazy").show().lazyload();

设置敏感度,默认情况下图片会出现在屏幕时加载. 如果你想提前加载图片, 可以设置 threshold 选项, 设置 threshold 为 200 令图片在距离屏幕 200 像素时提前加载.
$("img.lazy").lazyload({ threshold : 200 });
p270228163
2012-05-18 · TA获得超过114个赞
知道小有建树答主
回答量:171
采纳率:66%
帮助的人:66.7万
展开全部
javascript图片预加载是做什么用的?
很简单就是一些导航条如果要一些背景的话需要预加载,乳瓜不用这个,可能鼠标移动过去了,还没有显示出来,一会突然出现了,用户体验不好,代码要的话我还得找找,

javascript图片延时加载又是做什么用的?
就是和windows的延迟启动系统服务一样,在加载好网页后一定时间之后在加载图片,这个我想不到有什么样的栗子了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
俯视太阳
推荐于2017-09-08 · 超过11用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:28.2万
展开全部
预加载:就是页面打开,图片什么的都加载好了(优先显示图片)
延迟加载:优先显示别的,等别的显示完了,再加载图片(优先显示其他东西)

各有所需,看你的用户需要优先看什么。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dde64d5e7
2012-05-18 · TA获得超过2310个赞
知道小有建树答主
回答量:1430
采纳率:66%
帮助的人:1418万
展开全部
预加载是提前加载图片 ,以保证用户体验良好,但这样做的基础是用户下一步必定会访问到那些图片;

延时加载也是考虑保证用户的体验良好,即避免一次加载太多图片,这样做的基础是用户不一定会访问到那些图片
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小猪八Q
2012-05-18 · TA获得超过170个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:115万
展开全部
预加载,是指在页面加载的过程中,通过js,首先获取到页面所需要的image元素进行加载,这样所有的图片都加载了。
而延迟加载是指,页面加载的时候,只是加载用户浏览区域的(这只是一种方式,也可以是其他的延迟方式),而其他部分的img 的表签都会改写例如:<img default='123.jpg' src='未加载.jpg' />
不再浏览区的图片,都是“未加载.jpg”的图片,这样,页面只要请求找一个图片的资源就可以了,当用户滚动屏幕的时候,通过js获取到default属性里面真正的图片路径 123.jpg,这样设置src为123.jpg,页面就会请求并加载123.jpg,浏览到那里,就加载那里的图片,成为延迟加载。
预加载则是提前加载完成,当浏览的时候,就直接显示了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式