Otimização de JavaScript

A otimização de JavaScript reduz trabalho desnecessário de scripts, para que a página entregue com rapidez e confiabilidade o conteúdo essencial e as interações.

Regra de decisão e limites

A otimização de JavaScript reduz trabalho desnecessário de scripts, para que a página entregue com rapidez e confiabilidade o conteúdo essencial e as interações. O JavaScript disputa a thread principal do dispositivo. Otimizar significa reduzir, adiar ou dividir o trabalho que não é necessário para a primeira versão útil da página, mantendo disponíveis a interação essencial e o conteúdo acessível.

O diagrama situa a etapa de renderização ou de medição que este conceito de desempenho descreve.

Como inspecionar

Inspecione a cascata de requisições, a saída renderizada, as long tasks e a contribuição de terceiros em uma rota representativa. Repita o teste em um perfil de celular com recursos limitados e diferencie um arquivo grande baixado de um script que realmente bloqueia a interação.

Fluxo prático

Remova uma dependência não utilizada antes de adicionar um carregador. Depois, adie os recursos não críticos e separe o código dos recursos específicos de cada rota (code splitting), e teste a interação real que motivou a mudança, com JavaScript habilitado e desabilitado quando isso fizer sentido.

Erros comuns e limites de medição

Reduzir o tamanho do bundle não é, por si só, um resultado para o usuário. Ele pode transferir o trabalho para a hidratação, para a latência da rede ou para outra rota; por isso, verifique renderização, interação, erros e acessibilidade após cada mudança. O modo de falha mais comum é minificar um bundle e presumir que isso resolveu problemas de renderização, de resposta do servidor ou de imagens.

FAQ

O que significa otimização de JavaScript?
A otimização de JavaScript reduz trabalho desnecessário de scripts, para que a página entregue com rapidez e confiabilidade o conteúdo essencial e as interações.
Como devo verificar a otimização de JavaScript?
Inspecione a saída renderizada, a cascata de requisições, o trabalho na thread principal, os scripts de terceiros e o cenário sem JavaScript; depois registre a fonte, a data, a configuração e as evidências que faltam.
Qual é a principal limitação?
Não confunda uma observação com uma garantia. Um erro comum é minificar um bundle e presumir que isso resolveu problemas de renderização, de resposta do servidor ou de imagens.