$(document).ready() 和CSS DOM 注入
使用$(document).ready() 執行腳本時,有可能會擔心當時是否所有CSS值都已註入DOM。這裡有一個深入的分析:
DOM-ready vs. CSS-ready
過去,$(document).ready()試圖確保所有CSS 樣式表在執行腳本之前載入。然而,從 1.3 版本開始,jQuery 不再做出這樣的保證。建議在頁面上的腳本之前包含所有 CSS 文件,以避免元素屬性未正確定義的偶發問題。
CSS 渲染和$(document).ready()
jQuery ready() 不會等待CSS 渲染;因此,即使CSS 未完全加載,您在啟動時仍可能會看到視覺變化。
為什麼當CSS 延遲時JavaScript 也會延遲
一些意外的行為開發人員觀察到,即使在CSS 檔案開始載入之後,JavaScript 的執行也可能會延遲。這似乎不合邏輯,因為 CSS 是非同步載入的,並且不應該影響 JavaScript 載入。然而,測試表明,在某些情況下,外部 JavaScript 和 CSS 載入的特定組合可能會導致此類延遲。
解決方案:CSS 先於 JavaScript
為了防止潛在的延遲問題,最佳實踐仍然是在所有 JavaScript 程式碼之上包含 CSS 檔案。雖然它可能不會總是防止 JavaScript 延遲,但它可以避免元素屬性未正確定義的問題。
其他注意事項
結論
透過遵循在JavaScript 之前包含CSS 的建議,您可以最大限度地降低使用$(document).ready() 時與CSS注入相關的問題的風險。如果您遇到意外延誤,徹底測試並仔細考慮上述因素可以幫助找出根本原因。
以上是$(document).ready() 能否保證 CSS 注入 DOM ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!