Używa document.write()

Używanie 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, którzy mają wolne połączenie. Dlatego w wielu przypadkach Chrome blokuje wykonanie polecenia document.write(), co oznacza, że nie możesz na nim polegać.

Jeśli używasz narzędzia document.write(), w konsoli Narzędzi deweloperskich w Chrome zobaczysz ten komunikat:

[Violation] Avoid using document.write().

W konsoli Narzędzi deweloperskich w przeglądarce Firefox zobaczysz ten komunikat:

An unbalanced tree was written using document.write() causing
data from the network to be reparsed.

Co się dzieje z audytem Lighthouse document.write()

Lighthouse zgłasza wywołania do document.write(), które nie zostały zablokowane przez Chrome:

Audyt Lighthouse dotyczący użycia metody document.write

W najbardziej problematycznych zastosowaniach Chrome będzie blokować wywołania document.write() lub w zależności od szybkości połączenia użytkownika wyświetlać ostrzeżenie w konsoli. Tak czy inaczej, wywołania, których dotyczy problem, pojawią się w konsoli Narzędzi deweloperskich. Więcej informacji można znaleźć w artykule Google dotyczącym interwencji przeciwko document.write().

Lighthouse zgłasza wszystkie pozostałe wywołania funkcji document.write(), ponieważ wpływa ono niekorzystnie na wydajność niezależnie od sposobu użycia. Istnieją też lepsze alternatywy.

Unikaj: document.write()

Usuń z kodu wszystkie przypadki użycia document.write(). Jeśli używasz go do wstrzykiwania skryptów innych firm, spróbuj skorzystać z ładowania asynchronicznego.

Jeśli kod innej firmy korzysta z metody document.write(), poproś dostawcę o obsługę wczytywania asynchronicznego.

Zasoby