Używa document.write()

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:

Audyt Lighthouse pokazujący użycie instrukcji document.write

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.

Zasoby