การใช้ 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](https://developer.chrome.google.cn/static/docs/lighthouse/best-practices/no-document-write/image/lighthouse-audit-showing-909671e5aff87.png?authuser=2&hl=th)
สำหรับการใช้งานที่เป็นปัญหาที่สุด Chrome จะบล็อกการเรียกใช้ document.write()
หรือส่งคำเตือนของคอนโซล ทั้งนี้ขึ้นอยู่กับความเร็วในการเชื่อมต่อของผู้ใช้
ไม่ว่าจะเป็นลักษณะใดก็ตาม การเรียกที่ได้รับผลกระทบจะปรากฏในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บ
ดูข้อมูลเพิ่มเติมได้ที่บทความการแทรกแซง document.write()
ของ Google
Lighthouse จะรายงานการเรียกไปยัง document.write()
ที่เหลืออยู่เนื่องจากส่งผลเสียต่อประสิทธิภาพไม่ว่าจะใช้วิธีใดก็ตาม และมีทางเลือกอื่นที่ดีกว่า
หลีกเลี่ยงdocument.write()
นำการใช้ document.write()
ทั้งหมดในโค้ดออก หากใช้เพื่อแทรกสคริปต์ของบุคคลที่สาม ให้ลองใช้การโหลดแบบไม่พร้อมกันแทน
หากโค้ดของบุคคลที่สามใช้ document.write()
โปรดขอให้ผู้ให้บริการรองรับการโหลดแบบไม่พร้อมกัน