您的位置:首页 > Web前端 > JavaScript

js懒加载和预加载

2017-10-17 00:00 573 查看
预加载:是提前加载,会增加服务器性能。

懒加载:1、延时加载,2、特定条件加载,3、可视窗口加载(滚动过程中加载)。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.box{
width: 200px;height: 200px;
border: 1px solid red;
background: url(img/01.png) center center;
}
</style>
</head>
<body>
<div class="box"></div>
<img src="img/01.png" data-src="http://www.veeqi.com/uploadfile/2016/0924/20160924050538590.jpg"/>
</body>
</html>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
// 新建图片数组
var images = new Array()
function preload() {
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image();
images[i].src = preload.arguments[i];
}
}
// 要加载的网络图片资源,以数组形式
preload(
"http://www.veeqi.com/uploadfile/2016/0924/20160924050538590.jpg",
"http://image.uuu9.com/www/news/UploadFiles_7354/201709/201709030034517181.jpg",
"http://img0.utuku.china.com/640x0/game/20170920/13f41313-72b9-4c9c-b7b7-3406751dbe6b.jpg"
);
$(function(){
$(".box").css("background-image","url("+images[0].src+")")
});

// 懒加载

var num = document.getElementsByTagName('img').length;
var img = document.getElementsByTagName("img");
var n = 0; //存储图片加载到的位置,避免每次都从第一张图片开始遍历
lazyload(); //页面载入完毕加载可是区域内的图片
window.onscroll = lazyload;
function lazyload() { //监听页面滚动事件
var seeHeight = document.documentElement.clientHeight; //可见区域高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部高度
for (var i = n; i < num; i++) {
if (img[i].offsetTop < seeHeight + scrollTop) {
// if (img[i].getAttribute("src") == "") {
img[i].src = img[i].getAttribute("data-src");
// }
n = i + 1;
}
}
}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js预加载 懒加载