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żna na nim polegać.
W konsoli Narzędzi deweloperskich w Chrome, gdy użyjesz document.write()
, zobaczysz ten komunikat:
[Violation] Avoid using document.write().
W konsoli Narzędzi dla programistów Firefoxa 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
Lighthouse flaguje wywołania do document.write()
, które nie zostały zablokowane przez Chrome:
W najbardziej problematycznych przypadkach Chrome blokuje wywołania do document.write()
lub wysyła ostrzeżenie w konsoli, w zależności od szybkości połączenia użytkownika.
W obu przypadkach wywołania, których to dotyczy, pojawią się w Konsoli DevTools.
Więcej informacji znajdziesz w artykule Google Interweniowanie w sytuacji 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ń ze swojego kodu wszystkie wystąpienia document.write()
. Jeśli jest on używany do wstrzykiwania skryptów innych firm, spróbuj użyć wczytywania asynchronicznego.
Jeśli kod zewnętrzny korzysta z funkcji document.write()
, poproś dostawcę o obsługę wczytywania asynchronicznego.