10 de Fevereiro de 2025
Como o Browser Carrega JS, CSS, Fonte e Imagem
Como esses recursos entram na pagina em tempos e pesos diferentes, e por que isso muda pintura, bloqueio e percepção de velocidade.
Andrews Ribeiro
Founder & Engineer
4 min Intermediario Frontend
Trilha
Trilha para entrevistas de senior frontend
Etapa 9 / 15
O problema
Quando uma pagina parece lenta, muita gente olha só para o número total de requisicoes ou para o tamanho total baixado.
Isso ajuda um pouco.
Mas ainda e uma visão fraca.
Porque o browser não trata todos os recursos do mesmo jeito.
E o usuário também não sente todos os atrasos da mesma forma.
Uma imagem pesada abaixo da dobra e um problema diferente de:
- CSS crítico atrasado
- JavaScript que bloqueia a thread principal
- fonte que troca o texto depois
Modelo mental
O browser vai descobrindo e pedindo recursos enquanto monta a pagina.
Mas cada tipo de arquivo interfere em uma fase diferente:
- CSS influencia a renderização visual
- JavaScript pode atrasar parse, execução e interatividade
- fonte altera como o texto aparece
- imagem pesa em bytes, layout e pintura
Em vez de perguntar “o site esta pesado?”, ajuda perguntar:
o que esta atrasando ver, ler, clicar ou estabilizar a tela?
Quebrando o problema
CSS
CSS parece barato porque “não e lógica”.
Só que ele costuma ser muito importante para a renderização inicial.
Sem os estilos relevantes, o browser pode evitar pintar cedo o que ainda não consegue apresentar direito.
Por isso CSS crítico costuma ter impacto alto em:
- primeira pintura
- layout inicial
- estabilidade visual
JavaScript
JavaScript pesa em mais de uma etapa:
- download
- parse
- compilacao
- execução
E ainda disputa thread principal com:
- input
- layout
- paint
- hydration
Por isso bundle grande não e só problema de rede.
Também e problema de CPU e de interatividade atrasada.
Fontes
Fonte parece detalhe visual, mas afeta percepção forte.
Ela pode causar:
- texto invisível por um tempo
- troca visual quando a fonte final chega
- mudança sutil ou grande de layout
Quando o texto muda de metragem entre a fonte fallback e a final, a pagina pode mexer na cara do usuário.
Imagens
Imagem costuma cobrar muito em bytes.
Mas o custo não para ai.
Ela também pode causar:
- pintura cara
- layout shift se dimensao não estiver bem definida
- atraso visual em areas importantes da pagina
Imagem principal e diferente de icone pequeno.
De novo: nem todo recurso pesa igual.
Exemplo simples
Imagine uma home com:
- HTML inicial
- um CSS principal
- um bundle JS grande
- fonte customizada
- hero image pesada
Se o CSS demora, a pagina pode atrasar a pintura útil.
Se o JS e grande, a estrutura até pode aparecer, mas a interatividade demora mais.
Se a fonte troca tarde, o texto pode piscar ou mudar.
Se a imagem hero chega tarde e sem dimensao bem definida, a dobra parece instável.
O usuário não sente “uma pagina de 2 MB”.
Ele sente:
- “demorou para aparecer”
- “apareceu mas ainda não dava para usar”
- “a tela ficou mexendo”
Erros comuns
- Tratar todo byte como se tivesse o mesmo peso.
- Olhar só para número de requests.
- Ignorar custo de execução do JavaScript.
- Achar que imagem e sempre o maior culpado.
- Esquecer que fonte e CSS mudam bastante a experiência inicial.
Como um senior pensa
Quem tem mais experiência costuma decompor o carregamento em perguntas menores:
- o que bloqueia a primeira pintura?
- o que bloqueia a interatividade?
- o que causa instabilidade visual?
- o que pode chegar depois sem estragar a experiência?
Essa decomposicao e muito mais útil do que falar genericamente em “site pesado”.
O que o entrevistador quer ver
Em entrevista, esse assunto aparece como entendimento real de browser e performance.
Você sobe de nivel quando:
- diferencia impacto de CSS, JS, fonte e imagem
- conecta recurso a fase da experiência
- fala de CPU alem de rede
- evita slogan simplista do tipo “e só comprimir tudo”
Uma resposta forte costuma soar assim:
“Eu separaria o que bloqueia ver daquilo que bloqueia interagir. CSS e HTML influenciam muito a leitura inicial. JavaScript pesa também na CPU. Fonte e imagem afetam estabilidade e percepção visual.”
Browser lento nem sempre esta gritando sobre bytes. As vezes ele esta pedindo socorro por causa da ordem errada das coisas.
Resumo rápido
O que vale manter na cabeça
- CSS, JavaScript, fonte e imagem entram no carregamento com impactos diferentes no que o usuário consegue ver e fazer.
- CSS costuma pesar mais na renderização inicial do que imagem decorativa atrasada.
- JavaScript não pesa só no download. Ele também pesa no parse, execução e competicao pela thread principal.
- Entender a ordem e o efeito de cada recurso melhora muito mais do que falar genericamente em pagina pesada.
Checklist de pratica
Use isto ao responder
- Consigo explicar por que CSS pode atrasar a primeira pintura útil?
- Sei dizer por que JavaScript pesa alem do tamanho do arquivo?
- Consigo apontar diferença entre recurso crítico e não crítico no carregamento?
- Sei relacionar imagem, fonte e layout com percepção de velocidade?
Você concluiu este artigo
Parte da trilha: Trilha para entrevistas de senior frontend (9/15)
Compartilhar esta página
Copie o link manualmente no campo abaixo.