Skip to content

Instantly share code, notes, and snippets.

@angeal185
Created May 6, 2017 18:06
Show Gist options
  • Save angeal185/0e48fc041c2b533007c3343784dbf833 to your computer and use it in GitHub Desktop.
Save angeal185/0e48fc041c2b533007c3343784dbf833 to your computer and use it in GitHub Desktop.
preload images
window.onload = ->
preloadImages = undefined
preloadImages = (array, waitForOtherResources, timeout) ->
imgs = undefined
list = undefined
loadNow = undefined
loaded = undefined
t = undefined
timer = undefined
loaded = false
list = preloadImages.list
imgs = array.slice(0)
t = timeout or 15 * 1000
timer = undefined
loadNow = ->
i = undefined
img = undefined
if !loaded
loaded = true
i = 0
while i < imgs.length
img = new Image
img.onload = img.onerror =
img.onabort = ->
index = undefined
index = list.indexOf(this)
if index != -1
list.splice index, 1
return
list.push img
img.src = imgs[i]
i++
return
if !preloadImages.list
preloadImages.list = []
if !waitForOtherResources or document.readyState == 'complete'
loadNow()
else
window.addEventListener 'load', ->
clearTimeout timer
loadNow()
return
timer = setTimeout(loadNow, t)
return
preloadImages [
'url1.jpg'
'url2.jpg'
'url3.jpg'
], true
preloadImages [
'url99.jpg'
'url98.jpg'
], true
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment