Open In App

Lazy Loading images in HTML

Last Updated : 01 Dec, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

What is Lazy Loading?

Lazy loading is a strategy to identify resources as non-critical and load these only when needed. It’s a way to optimize web pages, which translates into reduced page load times. To read more about it:  https://www.geeksforgeeks.org/what-is-lazy-loading/

Generally images are larger in size, so lazy loading can be used to defer the offscreen images.

Difference from JavaScript solutions ?

There are many JavaScript solutions to support lazy loading but recently browsers have also started to implement lazy loading of images and iframes. Using browser method is more performance but it is not fully supported right now. 

Approach: To use Lazy Loading, use the loading attribute of image tag in html. Here are the supported values for the loading attribute:

  • auto: Default lazy-loading behavior of the browser, which is the same as not including the attribute.
  • lazy: Defer loading of the resource until it reaches a calculated distance from the viewport.
  • eager: Load the resource immediately, regardless of where it’s located on the page.

Example:

HTML




<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
  
    <title>Lazy Loading Images</title>
</head>
  
<body>
    <h1>Lazy Loading Images</h1>
  
    <!-- loading attribute of image tag is 
        used to specify lazy loading -->
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy"
        width="300" height="300"
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
          
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
  
    <img src=
        alt="numbers" loading="lazy" 
        width="300" height="300" 
        style="display:block; margin:10px" />
</body>
  
</html>


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads