预加载图片
- Promise,利用Promise链式调用实现队列加载
- 进度条,可以动态获取进度条信息
- 加载超时回调,获取超时资源
- 支持img标签的预加载,添加p-src属性即可,加载完成后自动替换代替图
可以用ES6 模块的形式引入
import {ImageLoad} from 'preload';
也可以直接使用CommonJS方式引入
var ImageLoad= require('imageLoad');
或者直接引入到HTML里面也可以
//不支持promise的浏览器,需要引入polyfill
<!-- <script src='https://cdn.polyfill.io/v2/polyfill.min.js'></script> -->
<script src="https://unpkg.com/[email protected]/dist/iife/imageLoad.js"></script>
最简形式使用
var p = new imageLoad()
p.load([
'xxx1.jpg',
'xxx2.jpg',
'xxx3.jpg',
])
.then(function(res){
//first queue complate
return p.load([
'xxx4.jpg',
'xxx5.jpg',
])
})
.then(function(res){
//second queue complate
})
.catch(function(err){
console.log(err);
})
function
var p = new imageLoad({
progress: function(i, count){
console.log(Math.floor((i / count) * 100));
},
})
这里进度条的数值仅仅是指单一队列的,且不包括HTML里面img标签的加载
number
var p = new imageLoad({
timeOut: 15
})
设置了超时时间,也需要设置超时回调,虽然不设置也不会报错,但是超时时间就无意义
function
var p = new imageLoad({
timeOutCB: function(res){
console.log('timeout=',res);
}
})
仅仅是指单一队列的,且不包括HTML里面img标签的加载
- 进度条回调的设置对于HTML的img标签的图片预加载是无效的,请自行在src上设置加载时的替代图,预加载完成后会自动替换
- 超时时间是指一张图片加载的最大时间,而不是一个队列,即使触发超时回调,图片请求已经出去了,还是会继续加载,除非资源地址无效