使用 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()
的调用:
对于最有问题的用例,Chrome 会阻止对 document.write()
的调用,或发出有关这些调用的控制台警告,具体取决于用户的连接速度。无论是哪种方式,受影响的调用都会显示在 DevTools 控制台中。如需了解详情,请参阅 Google 的干预 document.write()
一文。
Lighthouse 会报告对 document.write()
的所有剩余调用,因为无论使用方式如何,它都会对性能产生不利影响,而且有更好的替代方案。
避免使用 document.write()
从代码中移除对 document.write()
的所有使用。如果它用于注入第三方脚本,请改用异步加载。
如果第三方代码使用 document.write()
,请要求提供方支持异步加载。