image-progress
A wrapper for loading image via XHR and dispatching progress events.
How to use
1. Install the plugin.
With npm:
npm i image-progress --save
With Component(1):
component install ayamflow/image-progress
2. Use
var Progress = require('image-progress');
var img = new Progress('test-img.png');
img.on('error', function(event) {
console.log('there has been an error', event);
});
img.on('progress', function(event) {
console.log('The image is ' + event.progress * 100 + '% loaded !', event.loaded, event.total, event.progress);
});
img.on('complete', function(event) {
console.log('The image is loaded.');
});
img.on('start', function(event) {
console.log('The image with URL ' + event.url + ' has started loading');
});
img.load();
By default, the event.progress
only has 2 decimals. You can set the number of decimals by passing the leading
property as an instanciation option.
Methods
-
new Progress(url, params)
url
: the URL for the image you want to load.
params
: the params hash is used if you need to store & retrieve any property on the start
& complete
events. You can also pass different options there (see the options section below).
Starts the loading. It will fire a start
event.
Removes all internal & external listeners, and clears the XHR object.
By default, this method is called after the complete
and/or error
events are triggered. you can disable this behavior by passing the autoclear: false
as an instanciation option.
Instanciation options
-
onStart
, onError
, onProgress
, onComplete
(default: null)
Callbacks to be called when the appropriate events are fired.
-
autoload
(default: false)
Wether the loading should start automatically on instanciation. If you set it to true
, be sure to also pass onProgress
/onComplete
callbacks as well or you won't be able to listen for completion.
The number of decimals in the event.progress
property.
-
autoclear
(default: true)
Set wether the destroy
method should be automatically called after a complete
or error
event.
Uses jsonp in order to bypass CORS restrictions
Events
start
: fired when the loading starts. The event contains a reference to the options
hash, as well as the url
.
progress
: fired each time the XHR request updates. The event has 3 properties: loaded
, total
and progress
.
complete'
: fired when the loading is complete. The event contains a reference to the options
hash, as well as the url
.
error
: fired when a network-related error is raised.
Properties
-
total
: the total bytes to load
-
loaded
: the loaded bytes loaded
-
progress
: the loading progress, between 0 and 1