Como Melhorar a Percepção de Desempenho dos Recursos?

Como sabemos, a performance percebida não é apenas sobre quão rápido um site realmente é — é sobre quão rápido ele parece para os usuários. Então, por exemplo, se você já usou um site que parecia lento, mesmo que não fosse? Essa é a performance percebida — a rapidez com que um site parece para o usuário. Pequenos ajustes podem fazer uma grande diferença na experiência do usuário. Vamos explorar algumas maneiras práticas de melhorar a performance percebida! Spinners podem fazer os usuários sentirem que estão esperando mais do que realmente estão. Em vez disso, experimente skeleton screens — espaços reservados cinzas que imitam conteúdo real e carregam gradualmente:
<div class="skeleton"></div>
<script>
  setTimeout(() => {
    document.querySelector(".skeleton").innerHTML = "✅ Content Loaded!";
  }, 2000);
</script>
Os usuários sentem que a página está carregando progressivamente, em vez de esperar no escuro. Além disso, os usuários não devem ter que esperar tudo carregar antes de poderem começar a interagir. Carregue o conteúdo importante primeiro e depois carregue o restante em segundo plano. Já vimos isso anteriormente com lazy loading:
<img src="placeholder.jpg" data-src="real-image.jpg" class="lazy">
<script>
  document.addEventListener("DOMContentLoaded", function () {
    const lazyImages = document.querySelectorAll("img.lazy");
    lazyImages.forEach(img => {
      img.src = img.dataset.src;
    });
  });
</script>
Isso faz com que a página pareça responsiva, mesmo que nem tudo tenha sido carregado ainda. Agora - e se o seu site pudesse prever o que o usuário vai clicar em seguida? Com pré-carregamento, você pode buscar a próxima página antes que eles a solicitem:
<link rel="preload" href="next-page.html" as="document">
Isso reduz o tempo de carregamento percebido para quase zero quando os usuários navegam. E finalmente, os usuários não gostam de incerteza. Quando eles clicam em um botão, reconheça a ação deles instantaneamente:
<button onclick="this.innerText='⏳ Processing...'; setTimeout(() => this.innerText='✅ Done!', 2000);">
  Click Me
</button>
Isso significa que, mesmo que haja um atraso, o usuário sente que algo está acontecendo. Então, em conclusão, melhorar a performance percebida não é apenas sobre velocidade bruta, é sobre como a velocidade é sentida pelo usuário. Use skeleton screens, priorize o conteúdo importante, faça pré-carregamento inteligente e dê feedback instantâneo para fazer seu site parecer mais rápido.
Este módulo não possui perguntas. Marque como concluído.