web新能优化五-图片的预加载

什么是预加载,以及预加载的优点是什么?
  • 图片等静态资源在使用之前的提前请求
  • 资源使用到时能从缓存中加载,提升用户体验
  • 页面展示的依赖关系维护
首先预加载第一种实现方式可以是这样子滴
<!-- 预加载的第一种方式,使用img 的src加载,设置display none 缓存图片 -->
 <img src="http://pic26.nipic.com/20121213/6168183_004444903000_2.jpg" class="image-item" style="display: none" /> 
第二种实现方式是
// 第二种方式就是使用Image对象提前进行缓存图片,会从缓存中读取下载好的图片资源
var image = new Image();
image.src = 'http://pic26.nipic.com/20121213/6168183_004444903000_2.jpg';
第三种实现方式可以使用XMLHttpRequset来实现
// 第三种方式就是使用XMLHttpRequrest对象,代码执行顺序如下
// 优点是可以掌握各个阶段的信息,便于业务的开发,但是缺点是存在跨域
var xmlhttprequest = new XMLHttpRequest();

xmlhttprequest.open("GET", "'http://image.baidu.com/mouse.jpg", true);

xmlhttprequest.send();

xmlhttprequest.onreadystatechange = callback;
xmlhttprequest.onprogress = progressCallback;

function callback() {
    if (xmlhttprequest.readyState == 4 && xmlhttprequest.status == 200) {
        var responseText = xml.responseText;

    } else {
        console.log("Request was unsuccessful: " + xmlhttprequest.status)
    }
}

function progressCallback(e) {
    e = e || event;
    if (e.lengthComputable) {
        console.log("Received " + e.loaded + " of " + e.total + " bytes");
    }
}

推荐使用第三方库来做前端预加载
preload.js来处理前端预加载资源的业务,提供的api也简单易用

// 使用preload.js库
// false决定着使用html标签的方式去加载图片,不使用的话就走XMLHttpRequest方式去加载图片
var queue = new createjs.LoadQueue(false);

queue.on("complete", handleComplete, this);

queue.loadManifest([
    { id: "myImage", src: 'http://pic26.nipic.com/20121213/6168183_004444903000_2.jpg' },
    { id: "myImage2", src: 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1069058874,714751845&fm=27&gp=0.jpg' }
])

function handleComplete() {
    var image = queue.getResult("myImage");
    document.body.appendChild(image);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值