Lightweight assets loader with retina support. Use it for loading images, styles and scripts.
###Install
Bower: bower install loadic
Npm: npm install loadic
ES6 modules
from 'loadic' import Loader;
let loader = new Loader({
common: [
'images/example1.jpg*',
'images/example3.bmp!',
'css/external.css'
],
dpiDependent: [
'images/example2.jpg'
]
});
loader.onProgress = (progress) => {
console.log(`loaded: ${progress}%`);
}
loader.onComplete = () => {
console.log('complete');
}
AMD enviroment
require(['loadic/loadic.amd'], function(Loader){
var loader = new Loader.default({
common: [
'images/example1.jpg*',
'images/example3.bmp!',
'css/external.css'
],
dpiDependent: [
'images/example2.jpg'
]
});
// etc...
});
No modules
var loader = new loadic({
common: [
'images/example1.jpg*',
'images/example3.bmp!',
'css/external.css'
],
dpiDependent: [
'images/example2.jpg'
]
});
// etc...
Base url for assets. Will be prepended to each asset location that does not starts with "http"
.
Default: ''
Array of assets urls. Default: []
Array of dpi dependent images which have high resolution versions. Default: []
Append !
suffix to file name, if it is required for your project. For example: 'scripts/core.js!'
. This files will be loaded first. Also, if timeout option is set, it does not fire onComplete
on expiration, while required resources are loaded.
Append *
suffix to file name, if you prefer to use XHR for this resource. It's very usefull when you preloading media (video, audio etc). For example: 'scripts/video.mp4*'
. This prefix mark current file as required and load resource via XHR. Loaded result available in data
field of resource as ArrayBuffer.
When user has slow connection, he can bounce due to the long loading screen. Experiment with this option and network throttling to achieve the best user experience. When timeout expires, onComplete
callback will be fired and you can minimize progress bar.
Default: false
Suffix which will be appended to dpi dependent images in case of high resolution screen detection. Default: '@2x'
This function is called to determine whether to use high definition resources or standard definition resources.
Default: window.devicePixelRatio > 1
Loader progress. Integer 0..100
Array of resourses:
[
{
src: '//url-to-file',
required: true, // set to true when you use ! or * suffixes
loaded: true,
xhr: true, // set to true when you use * suffix
data: [ArrayBuffer] // available if use XHR preload only
}, ...
]
MIT