שימוש ב-document.write()
יכול לעכב את הצגת תוכן הדף בעשרות שניות, והוא בעייתי במיוחד למשתמשים עם חיבורים איטיים.
לכן, Chrome חוסם את ההפעלה של document.write()
במקרים רבים, כלומר אי אפשר להסתמך עליו.
במסוף כלי הפיתוח של Chrome תוצג ההודעה הבאה כשמשתמשים ב-document.write()
:
[Violation] Avoid using document.write().
במסוף DevTools של 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()
או ישלח אזהרה על כך במסוף, בהתאם למהירות החיבור של המשתמש.
בכל מקרה, הקריאות שהושפעו מופיעות במסוף DevTools.
למידע נוסף, אפשר לעיין במאמר של Google בנושא התערבות נגד document.write()
.
Lighthouse מדווח על כל הקריאות שנותרו ל-document.write()
כי הן משפיעות לרעה על הביצועים, לא משנה איך משתמשים בהן, ויש חלופות טובות יותר.
הימנעו מ-document.write()
מסירים את כל השימושים ב-document.write()
בקוד. אם הוא משמש להחדרת סקריפטים של צד שלישי, נסו להשתמש במקום זאת בטעינה אסינכררונית.
אם קוד של צד שלישי משתמש ב-document.write()
, צריך לבקש מהספק לתמוך בעומס אסינכרוני.