ใช้ document.write()

การใช้ document.write() อาจทำให้การแสดงเนื้อหาในหน้าเว็บช้าลงหลาย 10 วินาที และถือเป็นปัญหาอย่างยิ่งสำหรับผู้ใช้ที่ใช้การเชื่อมต่อช้า Chrome จึงบล็อกการดำเนินการของ document.write() ในหลายกรณี คุณจึงไม่สามารถพึ่งพาการดำเนินการได้

ในคอนโซล Chrome DevTools คุณจะเห็นข้อความต่อไปนี้เมื่อใช้ document.write()

[Violation] Avoid using document.write().

คุณจะเห็นข้อความนี้ในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บของ Firefox

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

วิธีที่การตรวจสอบ Lighthouse document.write() ล้มเหลว

Lighthouse จะแจ้งการเรียกใช้ document.write() ที่ไม่ถูกบล็อกโดย Chrome

การตรวจสอบ Lighthouse ที่แสดงการใช้งาน document.write

สำหรับการใช้งานที่เป็นปัญหาที่สุด Chrome จะบล็อกการเรียกใช้ document.write() หรือส่งคำเตือนของคอนโซล ทั้งนี้ขึ้นอยู่กับความเร็วในการเชื่อมต่อของผู้ใช้ ไม่ว่าจะเป็นลักษณะใดก็ตาม การเรียกที่ได้รับผลกระทบจะปรากฏในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บ ดูข้อมูลเพิ่มเติมได้ที่บทความการแทรกแซง document.write() ของ Google

Lighthouse จะรายงานการเรียกไปยัง document.write() ที่เหลืออยู่เนื่องจากส่งผลเสียต่อประสิทธิภาพไม่ว่าจะใช้วิธีใดก็ตาม และมีทางเลือกอื่นที่ดีกว่า

หลีกเลี่ยงdocument.write()

นำการใช้ document.write() ทั้งหมดในโค้ดออก หากใช้เพื่อแทรกสคริปต์ของบุคคลที่สาม ให้ลองใช้การโหลดแบบไม่พร้อมกันแทน

หากโค้ดของบุคคลที่สามใช้ document.write() โปรดขอให้ผู้ให้บริการรองรับการโหลดแบบไม่พร้อมกัน

แหล่งข้อมูล