使用 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.
Lighthouse document.write()
审核如何失败
Lighthouse 会标记未被 Chrome 阻止的 document.write()
调用:
![显示 document.write 使用情况的 Lighthouse 评估](https://developer.chrome.google.cn/static/docs/lighthouse/best-practices/no-document-write/image/lighthouse-audit-showing-909671e5aff87.png?authuser=5&hl=nb)
对于最出现问题的应用,Chrome 会阻止对 document.write()
的调用,或发出有关这些调用的控制台警告,具体取决于用户的连接速度。无论哪种方式,受影响的调用都会显示在开发者工具控制台中。如需了解详情,请参阅 Google 的干预 document.write()
一文。
Lighthouse 会报告对 document.write()
的所有剩余调用,因为无论使用方式如何,它都会对性能产生负面影响,并且有更好的替代方案。
避免使用 document.write()
移除代码中 document.write()
的所有使用。如果使用它来注入第三方脚本,请尝试改用异步加载。
如果第三方代码使用的是 document.write()
,请让提供程序支持异步加载。