lazy loading: progressive vs on-demand

JavascriptJqueryLazy Loading

Javascript Problem Overview


This is a conceptual question. In my particular case, I am using slick.js to create an image carousel for a website. Since these are high resolution photographs, I want to speed up the page load time by allowing the photographs to be loaded asynchronously instead of on page load.

When looking through the documentation for this library, I saw the settings available for the 'lazyLoad' property with little information as to what those settings mean in practice.

Essentially my question is, what is the difference between progressive and on-demand in the context of lazy loading.

Javascript Solutions


Solution 1 - Javascript

progressive: Loads the visible image as soon as the page is displayed and the other ones after everything else is loaded in the background ("loads the visible slides on init, and then progressively loads the rest of the slides on window.load()."). Should be used if the other images will be used most (or all) of the times the page is displayed.

on-demand: Loads the visible image as soon as the page is displayed and the other ones only when they're displayed. ("[...] loads slides on demand. When a slide becomes visible (or on the before slide callback) the load is fired.") Should be used if the other images of the carousel are displayed very rarely.

Source: https://github.com/kenwheeler/slick/issues/35, especially jasonday's comment from 5. Apr

Solution 2 - Javascript

It's worth mentioning that there is another value for the lazyLoad option in the source code, not documented though: 'anticipated'. It was introduced in release 1.7.1

lazyLoad accepts 'ondemand', 'progressive', or 'anticipated' for lazy load technique.

'ondemand' will load the image as soon as you slide to it.

'progressive' loads one image after the other when the page loads.

'anticipated' pre-loads the 1 next and 1 previous image.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCaleb FarukiView Question on Stackoverflow
Solution 1 - JavascriptReenoView Answer on Stackoverflow
Solution 2 - JavascriptBarasView Answer on Stackoverflow