使用 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.com/static/docs/lighthouse/best-practices/no-document-write/image/lighthouse-audit-showing-909671e5aff87.png?authuser=19&hl=zh-tw)
在最有問題的用途中,Chrome 會封鎖對 document.write()
的呼叫,或根據使用者的連線速度發出主控台警告。無論採用哪種方式,受影響的呼叫都會顯示在開發人員工具控制台中。
詳情請參閱 Google 的反對 document.write()
文章。
Lighthouse 會回報所有剩餘的 document.write()
呼叫,因為無論用途為何,效能都會對效能產生負面影響,而且還有更好的替代方案。
建議不要使用 document.write()
移除程式碼中所有 document.write()
的用途。如果將用於插入第三方指令碼,請嘗試改用非同步載入功能。
如果第三方程式碼使用 document.write()
,請要求供應商支援非同步載入。