使用 document.write()

使用 document.write() 可能會導致網頁內容延遲數十秒才顯示,對於連線速度較慢的使用者來說尤其成問題。因此,Chrome 在多數情況下會封鎖 document.write() 的執行,也就是說您無法依賴 document.write()

使用 document.write() 時,Chrome 開發人員工具控制台會顯示下列訊息:

[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() 呼叫:

Lighthouse 稽核顯示 document.write 的使用情形

針對最有問題的用途,Chrome 會根據使用者的連線速度,封鎖對 document.write() 的呼叫,或發出相關的控制台警告。無論如何,受影響的呼叫都會顯示在開發人員工具控制台中。詳情請參閱 Google 的「針對 document.write() 進行干預」一文。

Lighthouse 會回報任何對 document.write() 的剩餘呼叫,因為無論如何使用,這都會對效能造成負面影響,而且有更好的替代方案。

建議不要使用 document.write()

請移除程式碼中所有 document.write() 的用途。如果是用於插入第三方指令碼,請改用非同步載入

如果第三方程式碼使用 document.write(),請要求供應商支援非同步載入功能。

資源