"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Melhorando o desempenho do site com o Intersection Observer

Melhorando o desempenho do site com o Intersection Observer

Publicado em 30/07/2024
Navegar:392

Enhancing Website Performance with Intersection Observer

Introdução

Na busca por uma experiência web mais rápida e eficiente, os desenvolvedores buscam continuamente novas maneiras de otimizar o desempenho. Uma ferramenta poderosa no arsenal do desenvolvedor web é a API Intersection Observer. Esta API permite observar mudanças na visibilidade dos elementos alvo, permitindo estratégias avançadas como carregamento lento e carregamento de conteúdo adiado. Neste blog, exploraremos como usar a API Intersection Observer para melhorar o desempenho do seu site.

O que é observador de intersecção?

A API Intersection Observer fornece uma maneira de observar de forma assíncrona mudanças na interseção de um elemento de destino com um elemento ancestral ou com a janela de visualização do documento de nível superior. Isso pode ser particularmente útil para imagens de carregamento lento ou outro conteúdo à medida que os usuários rolam a página para baixo.

Principais casos de uso para melhoria de desempenho

  1. Carregamento lento de imagens e iframes: Carregue imagens e iframes somente quando estiverem prestes a entrar na janela de visualização, reduzindo o tempo de carregamento inicial.
  2. Carregamento adiado de conteúdo fora da tela: adie o carregamento de conteúdo como anúncios, vídeos ou scripts pesados ​​até que eles estejam visíveis.
  3. Rolagem infinita: carregue mais conteúdo conforme o usuário rola a página para baixo.
  4. Acompanhamento de análise: rastreie quando os elementos aparecem para análise de envolvimento do usuário.

Uso Básico

Vamos mergulhar em uma implementação básica da API Intersection Observer.

  1. Criar um observador de interseção

Primeiro, crie uma instância do IntersectionObserver:

let observer = new IntersectionObserver((entries, observer) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      // Perform actions when the element is visible
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target); // Stop observing after loading
    }
  });
}, {
  root: null, // relative to document viewport
  rootMargin: '0px', // margin around root
  threshold: 0.1 // visible amount of item shown in relation to root
});
  1. Elementos-alvo para observação

Selecione os elementos que deseja observar e comece a observá-los:

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});
  1. Estrutura HTML para carregamento lento

Certifique-se de que sua estrutura HTML suporta carregamento lento usando atributos de dados:

Lazy Loaded Image

Configurações Avançadas

Para obter mais controle, você pode ajustar a margem raiz e as opções de limite:

  1. Root Margin: Pré-carregue o conteúdo um pouco antes de ele entrar na janela de visualização.
rootMargin: '100px' // preload 100px before entering viewport
  1. Threshold: determine quanto do elemento deve estar visível antes de acionar o retorno de chamada.
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility

Exemplo prático: carregamento lento de imagens

Aqui está um exemplo completo de carregamento lento de imagens:

  1. Código JavaScript
document.addEventListener("DOMContentLoaded", function() {
  let lazyImages = document.querySelectorAll("img.lazy");

  let imageObserver = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        let img = entry.target;
        img.src = img.dataset.src;
        img.classList.remove("lazy");
        observer.unobserve(img);
      }
    });
  });

  lazyImages.forEach(image => {
    imageObserver.observe(image);
  });
});
  1. Estrutura HTML
Lazy Loaded Image

Benefícios

  1. Tempo de carregamento inicial reduzido: Ao carregar apenas as imagens e o conteúdo que estão na janela de visualização ou próximo a ela, o tempo de carregamento inicial é reduzido.
  2. Melhor desempenho de rolagem: adiar o carregamento de conteúdo fora da tela pode levar a uma rolagem mais suave.
  3. Melhor experiência do usuário: os usuários baixam apenas o conteúdo que estão prestes a visualizar, proporcionando uma experiência mais responsiva.

Conclusão

Ao implementar a API Intersection Observer, você pode melhorar significativamente o desempenho e a experiência do usuário do seu site. Esteja você carregando imagens lentamente, adiando o carregamento de scripts pesados ​​ou implementando rolagem infinita, esta API fornece uma maneira robusta e eficiente de gerenciar a visibilidade do conteúdo. Comece a usar o Intersection Observer hoje e veja a diferença no desempenho do seu site!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/koolkamalkishor/enhancing-website-performance-with-intersection-observer-f89?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3