這是流行的前端面試問題之一。它測試受訪者對 HTML、JS 和效能的了解。
這是前端面試問題系列的第 1 個問題。如果您希望提高準備程度或保持最新狀態,請考慮註冊 FrontendCamp。
script標籤用於將JavaScript新增至HTML頁面。它可以是內聯腳本或外部腳本。
在解析 HTML 時,如果瀏覽器遇到 script 標籤,它將停止 HTML 解析並開始執行 JS 腳本。如果它是內聯的,它將立即開始執行,但如果它是外部腳本,它將下載然後執行。
這段時間,當JS腳本下載執行時,HTML解析被阻塞。只有瀏覽器執行完 JS 腳本後才能恢復。
你看到這裡出了什麼問題嗎?這將為最終用戶帶來效能問題。如果我們有很多腳本或某個腳本需要很長時間來執行,使用者將很長時間看不到頁面的內容。
為了解決這個問題,我們有兩個屬性:async 和 defer。
如果存在 async 屬性,則腳本將在解析 HTML 的同時並行下載,並在可用時立即執行。
如果多個腳本使用 async 屬性,執行順序可能與它們在 HTML 中出現的順序不同。最先可用的腳本將首先執行。
如果存在 defer 屬性,腳本將與 HTML 解析並行下載(就像非同步一樣),但在 HTML 解析完成後、觸發 DOMContentLoaded 之前執行。
如果多個腳本使用 defer 屬性,執行順序將保持不變,與 async 不同。
MDN:腳本元素
前端營
以上是了解非同步和延遲的詳細內容。更多資訊請關注PHP中文網其他相關文章!