Merge pull request #616 from kim-company/optimize-tile-loading

Optimize tile loading by clearing the queue on a re-draw
This commit is contained in:
Ian Gilman 2015-03-06 09:08:45 -08:00
commit 237edc0d6a
3 changed files with 14 additions and 2 deletions

View File

@ -124,7 +124,8 @@ $.ImageLoader.prototype = /** @lends OpenSeadragon.ImageLoader.prototype */{
jobOptions = {
src: options.src,
crossOriginPolicy: options.crossOriginPolicy,
callback: complete
callback: complete,
abort: options.abort
},
newJob = new ImageJob( jobOptions );
@ -142,6 +143,13 @@ $.ImageLoader.prototype = /** @lends OpenSeadragon.ImageLoader.prototype */{
* @method
*/
clear: function() {
for( var i = 0; i < this.jobQueue.length; i++ ) {
var job = this.jobQueue[i];
if ( typeof job.abort === "function" ) {
job.abort();
}
}
this.jobQueue = [];
}
};

View File

@ -883,6 +883,9 @@ function loadTile( tiledImage, tile, time ) {
crossOriginPolicy: tiledImage.crossOriginPolicy,
callback: function( image ){
onTileLoad( tiledImage, tile, time, image );
},
abort: function() {
tile.loading = false;
}
});
}

View File

@ -673,7 +673,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
THIS[ this.hash ].animating = false;
this.world.removeAll();
this.imageLoader.clear();
/**
* Raised when the viewer is closed (see {@link OpenSeadragon.Viewer#close}).
*
@ -2926,6 +2926,7 @@ function resizeViewportAndRecenter( viewer, containerSize, oldBounds, oldCenter
}
function drawWorld( viewer ) {
viewer.imageLoader.clear();
viewer.drawer.clear();
viewer.world.draw();