Desenvolvimento

Como aumentar a velocidade da página usando Lazy Loading em imagens

5/5 - (4 votes)

O Lazy Loading é uma forma de adiar o processo ou carregamento de algo e pode ser utilizado em várias áreas. Utilizando em imagens, significa carregá-las apenas quando estiver no viewport (área visível do navegador), aumentando a velocidade do carregamento da página.

Essa técnica é usada atrás do JavaScript, adicionando um atributo na tag img com endereço completo da imagem, e enquanto vai sendo acessado na área visível, ela irá carregando.

Essa técnica não é nova, mas muitas vezes não era performática com as técnicas utilizadas. O surgimento da API Intersection Observer , fez melhorar a performance para utilizar essa técnica de Lazy Loading nas imagens.

Basicamente com API Intersection Observer, é possível detectar quando o elemento entrar ou sair do viewport, sendo possível assim, otimizar mais a utilização da técnica do Lazy Loading.

BIBLIOTECA LOZAD.JS PARA LAZY LOADING

O Lozad.js é uma biblioteca que utiliza o recurso da API Intersection Observe para realizar o carregamento Lazy Loading. Ele tem 731 bytes minificado e com gzip, não possui dependência de framework ou biblioteca, permite carregamento de elementos dinamicamente e suporta imagens responsivas e background em elementos, como em div’s.

Como Utilizar

Adicione a tag head do seu html o script do lozad.js, você utilizar via CDN:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>

Agora nas suas imagens que você deseja ter o recurso do lazy loading, basta adicionar a classe lozad, e o atributo data-src com o endereço da imagem.

<img class="lozad" data-src="nome-pasta/imagem.jpg" alt="Imagem" />

Agora após definir as imagens, você adiciona o script:

<script type="text/javascript">
 lozad().observe();
</script>

Se quiser adicionar dentro do head, após o script do lozad, você pode usar DOMContentLoaded

<script type="text/javascript">
 document.addEventListener('DOMContentLoaded', function(){
        lozad().observe();
});
</script>

Caso queira utilizar em background a imagem para carregar Lazy Loading, o HTML ficaria assim:

<div class="lozad" data-background-image="nome-pasta/imagem.png">


</div>

Você pode criar um efeito simples de fade usando CSS, passando configurações para lozad.js, para adicionar essa classe na imagem. Segue o código CSS:

 .fadein {
         animation-name: fadein;
         animation-duration: 2s;
            }

        @keyframes fadein {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
        }

Vamos alterar o código do lozad:

<script>
           lozad('.lozad', {
                            load: function(target) {
                                    target.src = target.dataset.src;
                                    target.onload = function() {
                                        target.classList.add('fadein');
                                    }
                            }
            }).observe();
        
</script>

Veja o resultado:

https://www.mxcursos.com/blog/exemplos/lazyloading

Para dar suporte a navegadores mais antigos, basta utilizar o Polyfill, antes de chamar o script lozad.js

<script src="https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver"></script>

Dessa forma, você consegue utilizar em navegadores que não dão suporte API Intersection Observer.

Essa é uma ótima alternativa se você deseja aumentar a velocidade do carregamento da página, principalmente se ela possui muitas imagens.

Você tem alguma experiência com lazy loading? Caso tenha, divida conosco essa experiência!

Espero que esse artigo tenha lhe ajudado e até a próxima.

 

David CHC

Trabalha com desenvolvimento web há 10 anos, atuou como programador líder do MX Cursos por mais de 8 anos e hoje dedica-se exclusivamente à criação de cursos para a plataforma. Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3, Gulp.js, GIT, MySQL

Ver comentários

  • gostei bastante da biblioteca, inclusive já estou usando. Eu acho que o primeiro script precisa ser atualizado, pois não funcionou, e na documentação do site deles não aparece ela.

Posts recentes

O Futuro da Criação de Sites: Integração de IA e Design Gráfico

Nos últimos anos, testemunhamos uma revolução na forma como os sites são criados, impulsionada pelo…

1 mês atrás

Como a IA Está Revolucionando a Animação 3D

A animação 3D tem sido uma forma poderosa de contar histórias e criar experiências visuais…

1 mês atrás

Lista das 20 Melhores Inteligências Artificiais em 2024 para Criação de Imagens (Todas Gratuitas)

Nos últimos anos, a inteligência artificial (IA) tem revolucionado a forma como criamos e editamos…

1 mês atrás

O Papel da Inteligência Artificial na Criação de Sites com WordPress

Nos últimos anos, a integração da inteligência artificial (IA) na criação de sites tem revolucionado…

1 mês atrás

5 Tendências em Edição de Vídeo Impulsionadas pela Inteligência Artificial

Nos últimos anos, a edição de vídeo evoluiu rapidamente com o avanço da tecnologia, e…

1 mês atrás

O Papel Revolucionário da Inteligência Artificial na Dublagem de Filmes

A dublagem de filmes desempenha um papel fundamental na indústria cinematográfica, permitindo que obras de…

1 mês atrás

This website uses cookies.