השימוש ב-document.write()
יכול לעכב את ההצגה של תוכן בדף בעשרות שניות,
והוא בעייתי במיוחד למשתמשים בחיבור איטי.
לכן, Chrome חוסם את הביצוע של document.write()
במקרים רבים,
כלומר, לא ניתן להסתמך עליו.
במסוף כלי הפיתוח ל-Chrome תופיע ההודעה הבאה כשמשתמשים ב-document.write()
:
[Violation] Avoid using document.write().
ב'מסוף כלי הפיתוח' של Firefox, תופיע ההודעה הבאה:
An unbalanced tree was written using document.write() causing
data from the network to be reparsed.
איך הבדיקה של document.write()
ב-Lighthouse נכשלת
Lighthouse מסמן קריאות ל-document.write()
שלא נחסמו על ידי Chrome:
בשימושים הבעייתיים ביותר,
Chrome יחסום קריאות ל-document.write()
או ישלח אזהרה במסוף לגבי השימושים האלה, בהתאם למהירות החיבור של המשתמש.
בכל מקרה, הקריאות שהושפעו יופיעו במסוף כלי הפיתוח.
למידע נוסף, עיינו במאמר התערבות Google נגד document.write()
.
מערכת Lighthouse מדווחת על הקריאות שנותרו אל document.write()
כי היא משפיעה לרעה על הביצועים, ללא קשר לאופן השימוש בה, ויש חלופות טובות יותר.
יש להימנע מ-document.write()
צריך להסיר מהקוד את כל השימושים של document.write()
. אם הוא משמש להחדרת סקריפטים של צד שלישי, כדאי להשתמש במקום זאת בטעינה אסינכרונית.
אם בקוד של הצד השלישי נעשה שימוש ב-document.write()
, יש לבקש מהספק לתמוך בטעינה אסינכרונית.