L'utilisation de document.write()
peut retarder l'affichage du contenu de la page de plusieurs dizaines de secondes et est particulièrement problématique pour les utilisateurs dont la connexion est lente.
Chrome bloque donc l'exécution de document.write()
dans de nombreux cas, ce qui signifie que vous ne pouvez pas compter sur elle.
Dans la console des outils pour les développeurs Chrome, le message suivant s'affiche lorsque vous utilisez document.write()
:
[Violation] Avoid using document.write().
Dans la console des outils pour les développeurs Firefox, le message suivant s'affiche:
An unbalanced tree was written using document.write() causing
data from the network to be reparsed.
Échec de l'audit document.write()
de Lighthouse
Lighthouse signale les appels à document.write()
qui n'ont pas été bloqués par Chrome:
![Audit Lighthouse montrant l'utilisation de document.write](https://developer.chrome.com/static/docs/lighthouse/best-practices/no-document-write/image/lighthouse-audit-showing-909671e5aff87.png?authuser=19&hl=fr)
Pour les utilisations les plus problématiques, Chrome bloque les appels à document.write()
ou émet un avertissement dans la console, en fonction de la vitesse de connexion de l'utilisateur.
Dans tous les cas, les appels concernés s'affichent dans la console des outils de développement.
Pour en savoir plus, consultez l'article de Google Intervenir contre document.write()
.
Lighthouse signale tous les appels restants à document.write()
, car il affecte les performances, quelle que soit la manière dont il est utilisé, et il existe de meilleures alternatives.
Éviter la requête document.write()
Supprimez toutes les utilisations de document.write()
dans votre code. S'il est utilisé pour injecter des scripts tiers, essayez plutôt d'utiliser le chargement asynchrone.
Si le code tiers utilise document.write()
, demandez au fournisseur de prendre en charge le chargement asynchrone.