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>
懒加载: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>
相关文章推荐
- Angular-ui-router + oclazyload + requirejs实现资源随route懒加载
- 性能优化——CSS和JS的加载和执行
- php ci框架中加载css和js文件失败的解决方法
- three.js加载纹理
- android webview js交互之自定义错误加载界面(重新刷新)
- 关于jsp中加载css、js失败
- JS 实现图片预加载
- Tomcat无法加载css和js等静态资源文件的解决思路
- JS 的加载执行顺序 .
- 基于jquery的图片懒加载js
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- jquery动态加载js/css文件方法(自写小函数)
- js判断图片是否完全加载的方法(jquery的error事件妙用)
- 动态加载js文件和css脚本
- html、css、js文件加载顺序及执行情况
- 动态加载js的方法
- JS操作XML实例总结(加载与解析XML文件、字符串)
- 关于Hikic.js懒加载的深度剖析
- asp.net 页面引入外部JS 在IE6下延迟加载报错,IE7+均没问题
- AngularJS+RequireJs实现动态加载JS和页面的方案研究