From 5c28ed45f2712fbe12a7fd4e017abfd07b08c48f Mon Sep 17 00:00:00 2001 From: ccd0 Date: Sun, 7 Sep 2014 01:59:41 -0700 Subject: [PATCH] queue ImageLoader downloads --- src/Images/ImageLoader.coffee | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Images/ImageLoader.coffee b/src/Images/ImageLoader.coffee index 78ddbcaf3..447b039af 100755 --- a/src/Images/ImageLoader.coffee +++ b/src/Images/ImageLoader.coffee @@ -52,12 +52,27 @@ ImageLoader = el.style.maxWidth = style.maxWidth el.loop = true el.className = thumb.className - event = if isVideo then 'loadeddata' else 'load' cb = => - $.off el, event, cb + $.off el, 'load loadeddata', cb ImageLoader.replace @, el - $.on el, event, cb - el.src = URL + $.on el, 'load loadeddata', cb + ImageLoader.queue.push [el, URL] + ImageLoader.next() unless ImageLoader.busy + + busy: false + queue: [] + + loadend: -> + $.off @, 'load loadeddata error', ImageLoader.loadend + ImageLoader.busy = false + ImageLoader.next() + + next: -> + return if ImageLoader.busy + if [el, URL] = ImageLoader.queue.shift() + $.on el, 'load loadeddata error', ImageLoader.loadend + el.src = URL + ImageLoader.busy = true replace: (post, el) -> {file} = post