Użycie instrukcji document.write()
może opóźnić wyświetlanie zawartości strony o kilkadziesiąt sekund i jest szczególnie problematyczne w przypadku użytkowników z wolnymi połączeniami.
Dlatego w wielu przypadkach Chrome blokuje wykonywanie document.write()
, co oznacza, że nie możesz na nim polegać.
W konsoli Narzędzi deweloperskich w Chrome po użyciu document.write()
zobaczysz ten komunikat:
[Violation] Avoid using document.write().
W konsoli Narzędzi deweloperskich Firefoksa zobaczysz ten komunikat:
An unbalanced tree was written using document.write() causing
data from the network to be reparsed.
Dlaczego audyt Lighthouse document.write()
się nie udaje
Flagi Lighthouse
Połączenia z numerem document.write()
, które nie zostały zablokowane przez Chrome:

W przypadku najbardziej problematycznych zastosowań
Chrome będzie blokować połączenia z numerem document.write()
lub emitować ostrzeżenie w konsoli, zależnie od szybkości połączenia użytkownika.
W obu przypadkach wywołania, których dotyczy problem, pojawią się w konsoli Narzędzi deweloperskich.
Zobacz materiał Google dotyczący interwencji przeciwko document.write()
.
Lighthouse zgłasza wszystkie pozostałe wywołania do document.write()
, ponieważ mają one negatywny wpływ na wydajność niezależnie od sposobu użycia, a istnieją lepsze alternatywy.
Unikaj document.write()
Usuń z kodu wszystkie przypadki użycia atrybutu document.write()
. Jeśli jest używany
w celu wstrzykiwania skryptów innych firm, spróbuj użyć
ładowanie asynchroniczne
.
Jeśli kod zewnętrzny korzysta z funkcji document.write()
, poproś dostawcę o obsługę wczytywania asynchronicznego.