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.