Lazy Loading: como aumentar a velocidade do site?

Conheça a técnica que otimiza aplicações, melhorando a experiência do usuário e contribuindo para ocupar as melhores posições nos buscadores.

Como o próprio nome já indica, Lazy Loading (carregamento preguiçoso, em português) se trata de uma técnica que otimiza a performance de aplicações. Ao implementá-lo, é possível obter vantagens como a melhora da experiência do usuário, uma das características essenciais do projeto. 

É isso mesmo, uma técnica de “carregamento preguiçoso” na verdade pode tornar a sua aplicação mais fácil de acessar, tornando o processo mais rápido. Achou confuso? Basta continuar a leitura para entender melhor!

O que é  Lazy Loading?

O Lazy Loading se trata de uma estratégia de desenvolvimento web utilizada para identificar os recursos que não são necessários em um primeiro momento e deixar para carregá-los depois, reduzindo o tempo de carregamento da página. Ele pode ser aplicado em websites ou mesmo aplicações em Angular.

Por que utilizar o  Lazy Loading?

Você já desistiu de acessar algum site que não carregou rapidamente? A maioria das pessoas abandonam as páginas que levam mais de 3 segundos para carregar. Além disso, lá em 2010 o Google já tinha avisado que o tempo de carregamento do site era um dos fatores que poderiam fazer o site ranquear melhor ou não.

Nós vivemos na era do imediatismo e, ao buscar por uma informação, 5 segundos podem parecer eternidade. Por isso, pensar na user experience (experiência do usuário) significa pensar na velocidade de carregamento das aplicações.

Como funciona o Lazy Loading?

Antigamente, o carregamento do conteúdo de uma página era carregado todo de uma vez. Enquanto todos os módulos não fossem carregados, o conteúdo não aparecia. Chamado Eager Loading (carregamento ansioso, em português), esse método demandava um tempo de resposta de acordo com o tamanho da aplicação. 

Desenvolvedores trabalham com lazy loading
Desenvolvedores precisam aplicar a técnica de lazy loading para garantir a velocidade de carregamento.

Aquelas que continham muitos arquivos, resultavam em um tempo de espera longo para os usuários. Com a popularização do acesso feito a partir de dispositivos móveis e em locais com conexões mais lentas, a velocidade do carregamento passou a ser cada vez mais importante para as aplicações.

Com o Lazy Loading, o carregamento dos módulos acontece sob demanda, apenas quando são necessários. Por isso, ao acessar determinada página, o usuário consegue visualizar o conteúdo muito mais rapidamente, enquanto o restante será carregado apenas quando ele fizer alguma ação – como rolar a tela.

Benefícios de utilizar o Lazy Loading

Aplicar o Lazy Loading pode proporcionar diversos benefícios. Abaixo você confere uma lista com os principais.

  • Melhora a experiência do usuário: a página é exibida mais rapidamente e consome apenas a quantidade de dados necessária;
  • Possibilidade de inserir mais conteúdo sem prejudicar o carregamento: se antes a quantidade de conteúdo precisava ser considerada, por atrasar o carregamento, agora isso não é mais um problema. Podem ser inseridos mais recursos e deixar o conteúdo mais atrativo;
  • Aumento de conversão: se menos pessoas abandonam o site, mais delas podem ser convertidas em leads ou mesmo em clientes. Sendo assim, indiretamente, a velocidade do carregamento pode ajudar na taxa de conversão;
  • Otimização da estrutura: o uso do Lazy Loading pode tornar a estrutura modularizada mais organizada, deixando o código mais limpo e tornando a manutenção mais fácil;
  • Economia de recursos: para quem fornece os dados, um dos benefícios é a economia dos recursos, que só serão utilizados conforme o usuário solicitar;
  • Aumento de performance do SEO: o próprio Google recomenda adiar o carregamento não crítico ou não visível para melhorar o desempenho. A documentação oficial fala sobre a importância do conteúdo estar visível quando carregado na viewport, caso contrário, a indexação é prejudicada.

Inclusive, o Google implementou o Core Web Vitals para analisar o desempenho de sites e portais e mede o LCP (Largest Contentful Paint, ou exibição do maior conteúdo), FID (First Input Delay, ou latência de entrada) e CLS (Cumulative Layout Shift, ou mudança de layout cumulativa). Você pode conferir o desempenho de um site usando o Google Search Console.

Compatibilidade com navegadores

No Internet Explorer 11 já havia sido introduzido o conceito de Lazy Loading, porém, de uma maneira ainda pouco eficiente, que acabou não sendo implementada por nenhum browser da época. Em 2019 o Chrome voltou a abordar o recurso na sua versão 76

Depois, ele passou a ser implementado também em navegadores como Edge, Firefox, Chrome, Opera e Android Browser. A versão do WordPress 5.5 fez a introdução do recurso de Lazy Loading no seu Core em 2020.

Como implementar o Lazy Loading?

A maneira de implementar o Lazy Loading vai depender de como e onde ele será aplicado. Para implementar no Angular, por exemplo, é preciso criar novos módulos que são carregados sob demanda. 

Já se você utiliza o WordPress a partir da versão 5.5, não precisa fazer nada. Porém, se utiliza uma versão anterior, pode optar por outros métodos. Veja abaixo.

Divisão de códigos

É possível dividir as linguagens de programação CSS, HTML e JavaScript em pedaços menores e, com isso, enviar o código mínimo necessário para fornecer o valor antecipadamente. O restante é carregado sob demanda. 

CSS

O navegador não renderiza o conteúdo até que o CSSOM seja construído, por isso, o CSS precisa ser leve e entregue com a maior velocidade possível. Além disso, os tipos de mídia e o uso das consultas são aconselhados para desbloquear a renderização. Para isso, podem ser realizadas algumas otimizações CSS.

<link href = “style.css” rel = “stylesheet” media = “all”>

<link href = “portrait.css” rel = “stylesheet” media = “orientação: retrato”>

<link href = “print.css” rel = “stylesheet” media = “print”>

Imagens e iframes

Imagens podem ser um dos motivos para a demora do carregamento de uma página. Por vezes, elas não estão na tela assim que o usuário abre o site e é preciso uma interação, como a rolagem da página, para que elas sejam visualizadas. Desse modo, instruir o navegador para que ele adie o carregamento de imagens e frames fora da tela é uma maneira de aumentar a velocidade de carregamento inicial.

<img src = “image.jpg” alt = “…” loading = “lazy”>

<iframe src = “video-player.html” title = “…” loading = “lazy”> </iframe>

Fontes

Por vezes, ocorrem atrasos na renderização do texto por causa do atraso da solicitação de fontes, que só acontece quando a árvore de renderização já está construída. Para mudar esse comportamento padrão, você pode pré-carregar os recursos de fonte da web por meio do <link rel = “preload”>, a propriedade CSS font-display e a API de carregamento de fonte.

Polyfill

O Polyfill é usado quando é preciso implementar recursos modernos de JavaScript em navegadores mais antigos. Existe um polyfill para implementar o Lazy Loading: loading-attribute-polyfill

API Intersection Observer

Essa API funciona como uma sentinela, avisando quando o elemento passa a ficar visível dentro da página. Com isso, é possível executar ações sem precisar ficar olhando o scroll da tela, ganhando performance, mas sem que o código fique complexo.

Mas, ao implementar o Lazy Loading, é importante realizar testes para assegurar que os elementos sejam exibidos no momento certo. Além disso, é importante que o conteúdo possa ser rastreado pelos bots que fazem a indexação do Google.

E, se você se interessa pelo tema, vai gostar de saber que assinando o Multi+ você tem acesso a dezenas de cursos, inclusive o bootcamp online de Desenvolvedor(a) Front-End que tem duração de 10 semanas e aborda, entre outros temas, noções de UI (User Interface) e UX (User eXperience), além de Angular, CSS, Vue e muito mais. 

Com apenas uma assinatura você também pode acessar outros bootcamps como Desenvolvedor(a) NODE.JS e até Desenvolvedor Mobile.

spot_img

Continue Aprendendo

spot_img