web优化之懒加载和预加载
懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。
懒加载:懒加载也加延迟加载,延迟加载网络资源或符合某些条件时才加载资源。常见的就是图片延时加载。
懒加载的意义:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。
懒惰实现方式:
1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.
2.第二种是条件加载,符合某些条件,或触发了某些事件才开始异步下载。
3.第三种是可视区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某图片前一定距离遍开始加载,这样能保证用户拉下时正好能看到图片。
说了这么多,上代码:
//javascript
<script type="text/javascript">
window.onload = function(){
var imgs = Array.from(document.querySelectorAll('img'));
delay();
window.addEventListener('scroll', exec(delay, 4000));
function exec(fun, delaytime){
var timeout,startTime = new Date();
return function(){
clearTimeout(timeout);
tiemout = setTimeout(fun, delaytime);
}
}
function delay(){
var scrollTop = window.scrollY;
var clientHeight = document.documentElement.clientHeight;
//console.log(clientHeight);
imgs.forEach((item, index)=>{
if(scrollTop==0 && item.offsetTop<=clientHeight+scrollTop){
//console.log(item.getAttribute('data_img'));
item.setAttribute('src',item.getAttribute('data_img'));
}else if(item.offsetTop<=clientHeight+scrollTop && item.offsetTop > scrollTop){
item.setAttribute('src',item.getAttribute('data_img'));
}
});
}
}
</script>
从demo的js里面我们可以看出,我们在页面滚动上添加了事件。页面初次加载显示时只会显示页面可视区域的图片,当页面滚动到可视区域后才会加载图片显示图片,如图所示:
两张图可以看出首页加载只显示了两张图片,当向下滚动时继续加载了后边的图片。
预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。
两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力。预加载应用如广告弹窗等。
//
var target = document.getElementById('test');
addImg('./2.jpg');
function addImg(url){
var img = document.createElement('img');
var image = new Image();
image.src=url;
image.onload = function(){
img.src = this.src;
img.height = 50;
img.width = 50;
}
target.appendChild(img);
}
//html
<div id="test"></div>
仅以以上两个小列子学习预加载和懒加载。
- 如何用20元投资一小时赚取500元收益?如何用20元投资一小时赚取500元收益?你是否曾经想过,只需要20元的投资和一个小时的时间,就能轻松赚取500元的...多职猫阅读 7评论 0赞 0
- 推荐几款赚钱软件(百分百可信)抖音系列:抖音极速版、抖音火山版 头条系列:今日头条、头条搜索极速版 快手极速版 这些基本都是社交短视频应用。它为...配音新手圈阅读 6评论 0赞 0
- 《第一女仵作》苏玥宋文璟(完结篇)全文免费阅读【笔趣阁】《第一女仵作》苏玥宋文璟(完结篇)全文免费阅读【笔趣阁】 主角:苏玥宋文璟 简介:现代女法医苏玥,一朝穿越,成了相...小说推书阅读 7评论 0赞 0
- 广州最顶级复刻表在哪里买?推荐9个购买渠道复刻手表,这个看似与正品手表截然不同的存在,却在某种程度上诠释了对经典腕表的极致追求。在这篇文章中,我们将探讨复刻...腕表大师阅读 9评论 0赞 1
- 京东优惠券代理:如何成为优惠券的推广者?优惠券作为一种有效的促销手段,受到了广大消费者的热烈追捧。京东作为中国最大的综合性电商平台之一,其优惠券的发放与代...好项目高省阅读 8评论 0赞 0
- 如何创建公众号并撰写优质文章?微信公众号已成为个人、企业乃至机构展示自我、传递信息、吸引粉丝的重要平台。那么,如何创建公众号并撰写优质文章呢?本...一起高省阅读 11评论 0赞 0
- 程西傅铭煜《意外遇险,渣男选择救白月光》爆款热书全文在线阅读程西傅铭煜《意外遇险,渣男选择救白月光》爆款热书全文在线阅读 主角:程西傅铭煜 也名 傅殷雷程秋桐 简介:我跟他从...云轩书阁阅读 8评论 0赞 0
- 悦拜邀请码是多少?悦拜怎么免费获得邀请码?悦拜去哪里弄自己的邀请码?问:悦拜邀请码是多少? 答:悦拜邀请码999982 自买省钱分享赚钱(氧惠邀请码999982 自买省钱分享赚钱) ...知行导师阅读 30评论 0赞 0
- 莆田鞋高端货哪里买最划算呢?省钱又省心的购物攻略!莆田鞋高端货哪里买最划算呢?省钱又省心的购物攻略!探寻莆田鞋高端货的奥秘,首先需要明确一个观念:高端并不只是价格的...微香之窗阅读 4评论 0赞 2
推荐阅读 更多精彩内容
- 懒加载和预加载1、懒加载 1.什么是懒加载? 懒加载也就是延迟加载。 当访问一个页面的时候,先把img元素或是其他元素的背景图片...却忘不掉你心言阅读 502评论 0赞 4
- 懒加载和预加载1、懒加载 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路...xiaolizhenzhen阅读 70,303评论 18赞 160
- 懒加载和预加载懒加载和预加载 1. 懒加载 1. 什么是懒加载? 懒加载也就是延迟加载 当访问一个页面的时候,先把img元素或是...琦琦出去玩了阅读 713评论 0赞 8
- 懒加载与预加载1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张...码课sir阅读 351评论 0赞 0
- HTML+CSS(47-72)问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补..._Yfling阅读 13,611评论 1赞 92