Compreendendo Métricas de Tempo de Carregamento Web: TTFB, TTSR, TTDC e TTFL

As métricas de desempenho de carregamento de páginas são essenciais para otimizar a experiência do usuário. Aqui estão conceitos-chave e métodos de medição relacionados.

TTFB (Time To First Byte)

O TTFB representa o tempo entre o início de uma requisição de rede e o recebimento do primeiro byte do servidor. Ele abrange a resolução DNS, o estabelecimento da conexão TCP, o envio da requisição HTTP e o tempo inicial de resposta. Redirecionamentos de página aumentam o TTFB; portanto, minimize-os para melhorar o desempenho.

Para otimizar o TTFB:

  • Reduza consultas DNS desnecessárias.
  • Implemente redes de entrega de conteúdo (CDN).
  • Utilize técnicas de descarga antecipada (early flush) no servidor.
  • Adicione cabeçalhos de cache adequados.

TTSR (Time to Start Render)

O TTSR indica quando elementos visuais começam a ser exibidos no navegador. Um TTSR curto reduz a percepção de espera do usuário. Alto consumo de CPU durante o carregamento inicial pode atrasar o TTSR, especialmente em páginas com muitas imagens ou scripts.

Para otimizar o TTSR:

  • Melhore o TTFB primeiro.
  • Reduza o consumo de CPU adiando scripts não críticos para o final do corpo do documento.
  • Evite seletores CSS complexos e filtros CSS que sobrecarregam o navegador.

Exemplo de script para aproximar o TTSR no lado do cliente:

<script>
(function() {
    var startTime = new Date().getTime();
    var attempts = 0;
    var maxAttempts = 500;
    var checkInterval = setInterval(function() {
        attempts++;
        if ((document.body && document.body.scrollHeight > 0) || attempts >= maxAttempts) {
            clearInterval(checkInterval);
            var renderTime = new Date().getTime() - startTime;
            console.log('TTSR aproximado: ' + renderTime + ' ms após ' + attempts + ' verificações');
        }
    }, 10);
})();
</script>

Este script verifica periodicamente se o corpo do documento tem altura visível, simulando o início da renderização. Note que métodos precisos dependem do navegador; por exemplo, eventos como MozAfterPaint não são confiáveis para TTSR exato.

TTDC (Time to Document Complete)

O TTDC é o tempo até que o documento principal esteja totalmente carregado e pronto para interação, equivalente ao evento onload do navegador. Um TTDC baixo melhora a responsividade da página.

Para otimizar o TTDC:

  • Otimize TTFB e TTSR primeiro.
  • Adie carregamentos não essenciais para após o evento onload.
  • Minimize recursos bloqueantes no cabeçalho.

Script para detectar o momento de conclusão do documento:

function onDocumentComplete(callback) {
    if (document.readyState === 'complete') {
        callback();
    } else if (document.addEventListener) {
        document.addEventListener('DOMContentLoaded', function() {
            if (document.readyState === 'complete') callback();
        });
        window.addEventListener('load', callback, false);
    } else if (document.attachEvent) {
        document.attachEvent('onreadystatechange', function() {
            if (document.readyState === 'complete') callback();
        });
        window.attachEvent('onload', callback);
    }
}

onDocumentComplete(function() {
    console.log('Documento completo: pronto para interação');
});

TTFL (Time to Fully Loaded)

O TTFL engloba todo o tempo necessário para carregar completamente a página, incluindo recursos adicionais carregados após o onload. É a soma do tempo de carregamento antes e depois do evento onload.

Para otimizar o TTFL:

  • Aplique as otimizações de TTFB, TTSR e TTDC.
  • Utilize carregamento assíncrono ou preguiçoso (lazy loading) para recursos não críticos.
  • Implemente carregamento sob demanda para componentes dinâmicos.

Otimizando o TTFB

Ao analisar o TTFB, verifique os componentes principais: resolução DNS, tempo de conexão e tempo de resposta do servidor. Se a resolução DNS for lenta, considere usar serivdores de nomes mais confiáveis. Se a conexão inicial for demorada, a infraestrutura do servidor pode precisar de melhorias. Caso contrário, otimize o código do servidor ou atualize o hardware. O tempo ideal de TTFB próximo a zero indica eficiência sem necessidade imediata de otimização adicional.

Tags: TTFB TTSR TTDC TTFL Web Performance Optimization

Publicado em 7-25 07:18