Resumo

  • O primeiro rascunho público de Resource Timing do W3C, de 24 de maio de 2011, propôs medir cada recurso, inclusive imagens, por etapas como busca de domínio, conexão, pedido e resposta.
  • O texto candidato de nível 1 de 30 de março de 2017 colocou entradas numa linha do tempo, descreveu um buffer finito e atribuiu ao servidor de outra origem a decisão de liberar detalhes via Timing-Allow-Origin.

A página demorava a aparecer e todos tinham um álibi. A imagem de abertura jurava que o CSS a havia segurado. O CSS apontava para o script. O script olhava para o servidor com expressão de quem espera um advogado. O tempo total provava que o leitor havia aguardado; não dizia qual peça havia parado a fila. Resource Timing distribuiu cronômetros aos participantes.

O primeiro rascunho público de Resource Timing, publicado pelo W3C em 24 de maio de 2011, partia da latência dentro de uma página. Seu exemplo observava o tempo de busca de uma imagem. O documento tem uma navegação; os recursos que o compõem chegam em viagens diferentes. Fotos, folhas de estilo e scripts podem aparecer em momentos distintos. Transformar tudo num único número esconde o passageiro atrasado atrás do horário de chegada do ônibus.

O rascunho descrevia um registro com o nome do recurso, o tipo de iniciador e pontos ao longo da busca. fetchStart, domainLookupStart, connectStart, requestStart, responseStart e responseEnd ajudam a separar consulta de nome, conexão, pedido, começo da resposta e fim do recebimento. Se uma imagem leva muito tempo, essas marcas dão uma pista mais útil que «a internet ficou ruim». A equipe pode investigar uma etapa antes de mexer em todas.

Nem toda marca espaçada significa uma nova travessia. O navegador pode aproveitar uma conexão existente ou recuperar o recurso do cache. Nessas condições, fases de rede deixam de se repetir e alguns horários ficam iguais. O registro descreve aquela busca específica; não entrega uma sentença perpétua sobre a personalidade da imagem. Comparar uma visita com cache quente a outra com cache frio exige dizer qual foi qual. Caso contrário, a discussão mede duas corridas que saíram de linhas diferentes.

Na Recomendação Candidata Resource Timing Level 1, de 30 de março de 2017, os registros aparecem numa linha do tempo de desempenho. O exemplo usa performance.getEntriesByType('resource'), procura entradas cujo initiatorType seja img e compara responseEnd a startTime. Dá para colocar as imagens em ordem de chegada, observar a duração e examinar as etapas. O mesmo raciocínio vale para outros recursos. A página inteira deixa de responder pelo atraso de um único arquivo.

O caderno de horários tem limite. O texto de 2017 descreve um buffer para os registros e funções como setResourceTimingBufferSize() e clearResourceTimings(). Uma página que busca muitos arquivos pode preencher o espaço reservado. Quem mede precisa decidir quantas entradas guardar e quando limpar. Se as últimas linhas não estiverem no caderno, não se pode anunciar que os últimos recursos viajaram à velocidade da luz. Talvez tenha acabado o papel.

A escolha mais delicada pertence a um servidor de fora. Um recurso de outra origem pode aparecer na linha do tempo, mas o navegador restringe detalhes de fases por padrão. O servidor que entrega o arquivo pode responder com Timing-Allow-Origin e autorizar uma origem a ler mais. O editor que inclui uma imagem externa não adquire, por esse gesto, livre acesso ao relógio interno de quem a serviu. O fornecedor segura a chave dos ponteiros pequenos.

Isso muda a forma de ler os valores. A entrada de uma imagem externa pode indicar seu nome e duração enquanto deixa fases de DNS, conexão e resposta fora do alcance. Chamar esse espaço fechado de «zero milissegundo» confundiria falta de acesso com milagre de transporte. Se o fornecedor abrir a medição detalhada, surgem mais pistas; se não abrir, a análise continua com o que está visível. A fronteira de observação faz parte do diagnóstico.

O rascunho de Recomendação Candidata do W3C de 1º de setembro de 2026 preserva a visão por recurso e descreve mais atributos e um buffer maior que os textos antigos. São documentos de épocas diferentes: o rascunho de 2011, o candidato de 2017 e a versão de 2026 não contêm a mesma lista de recursos e campos. A continuidade está na ideia de registrar cada busca numa forma comum, para que a página possa consultá-la.

A imagem mais demorada nem sempre merece o primeiro conserto. Talvez esteja longe da primeira tela e quase ninguém tenha esperado por ela. Outra peça, um pouco menos lenta, pode ter prendido o título principal. Resource Timing conta a viagem do arquivo; o layout mostra o lugar dele na experiência. Juntar as duas coisas ajuda a escolher entre comprimir, mudar o servidor, alterar a ordem ou adiar uma busca sem urgência. Cronômetro não é editor de página.

A conversa da equipe ganhou verbos concretos. «A página está lenta» era reclamação. «Esta imagem aguardou nesta etapa; a folha de estilo reaproveitou a conexão; o fornecedor externo não abriu os detalhes» virava tarefa. A imagem de abertura ainda podia reclamar do CSS, mas agora precisava apresentar o próprio cartão de ponto.