O uso de document.write()
pode atrasar a exibição do conteúdo da página em dezenas de segundos
e é particularmente problemático para usuários com conexões lentas.
Portanto, o Chrome bloqueia a execução de document.write()
em muitos casos,
ou seja, ele não é confiável.
No Console do Chrome DevTools, você verá a seguinte mensagem ao usar document.write()
:
[Violation] Avoid using document.write().
No Console do DevTools do Firefox, você verá esta mensagem:
An unbalanced tree was written using document.write() causing
data from the network to be reparsed.
Como a auditoria de document.write()
do Lighthouse falha
O Lighthouse sinaliza
chamadas para document.write()
que não foram bloqueadas pelo Chrome:
![Auditoria do Lighthouse mostrando o uso de document.write](https://developer.chrome.google.cn/static/docs/lighthouse/best-practices/no-document-write/image/lighthouse-audit-showing-909671e5aff87.png?authuser=0000&hl=pt)
Para os usos mais problemáticos,
o Chrome bloqueia chamadas para document.write()
ou emite um aviso de console sobre elas, dependendo da velocidade de conexão do usuário.
De qualquer forma, as chamadas afetadas aparecem no Console do DevTools.
Consulte o artigo do Google Intervenção contra document.write()
para mais informações.
O Lighthouse relata todas as chamadas restantes para document.write()
porque afeta negativamente o desempenho, independente de como é usado,
e há alternativas melhores.
Evite document.write()
Remova todos os usos de document.write()
do código. Se ele estiver sendo usado
para injetar scripts de terceiros, tente usar o
carregamento assíncrono.
Se o código de terceiros estiver usando document.write()
,
peça para o provedor oferecer suporte ao carregamento assíncrono.