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ż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:

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

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.

Zasoby