Verificar se a página pode ser restaurada do cache de avanço e retorno

Contexto

O cache de avanço e retorno (bfcache) armazena um resumo da página na memória para quando a página é restaurada do histórico de navegação. Isso acelera significativamente as navegações de retorno à página. No entanto, algumas APIs do navegador (por exemplo, listeners de descarregamento) podem fazer com que o bfcache falhe e a página seja carregada normalmente.

Como o Lighthouse detecta falhas no bfcache

Navegações independentes

Ao final de uma navegação autônoma, o Lighthouse sairá e tentará restaurar a página do histórico de navegação para detectar se o bfcache está sendo usado.

Fluxos de usuários

O Lighthouse não testará ativamente o bfcache na navegação ao executar um fluxo de usuário. Isso ocorre porque sair e voltar para a página ao final de cada navegação não reflete a maioria das experiências do usuário na página.

No entanto, você ainda pode testar o uso do bfcache no modo de período, incluindo uma navegação de histórico como parte da jornada do usuário. Exemplo:

const flow = await startFlow(page);

// This navigation will not test the bfcache
// because it is part of a user flow.
await flow.navigate('https://example.com');

// This timespan will try to restore the page from the bfcache.
// Problems restoring from the bfcache are surfaced in this report.
await flow.startTimespan();
await page.goto('https://example2.com');
await page.goBack();
await flow.endTimespan();

Noções básicas sobre falhas de bfcache

Se não for possível restaurar a página do bfcache por qualquer motivo, a auditoria vai falhar. O Lighthouse listará todos os motivos pelos quais o bfcache não pôde ser usado, juntamente com os frames que causaram o problema. Há três tipos de motivos para as falhas:

  • Útil: corrija esses problemas para ativar o armazenamento em cache.
  • Suporte pendente: o Chrome ainda não oferece suporte a esses recursos, por isso eles impedem o armazenamento em cache. No entanto, quando esse recurso for compatível, o Chrome vai remover essas limitações.
  • Não acionável: não é possível corrigir esses problemas nesta página. Algo que está fora do controle da página impede o armazenamento em cache.

Exemplo de resultado da auditoria do cache de avanço e retorno do Lighthouse

Recursos