日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

script 標簽 async 屬性

作者:Bal炎魔 更新時間: 2022-10-15 編程語言

script 標簽 async 屬性

普通script

文檔解析的過程中,如果遇到script腳本,就會停止頁面的解析進行下載(但是Chrome會做一個優化,如果遇到script腳本,會快速的查看后邊有沒有需要下載其他資源的,如果有的話,會先下載那些資源,然后再進行下載script所對應的資源,這樣能夠節省一部分下載的時間 @Update: 2018-08-17)。
資源的下載是在解析過程中進行的,雖說script1腳本會很快的加載完畢,但是他前邊的script2并沒有加載&執行,所以他只能處于一個掛起的狀態,等待script2執行完畢后再執行。
當這兩個腳本都執行完畢后,才會繼續解析頁面。

defer 屬性

文檔解析時,遇到設置了defer的腳本,就會在后臺進行下載,但是并不會阻止文檔的渲染,當頁面解析&渲染完畢后。
會等到所有的defer腳本加載完畢并按照順序執行,執行完畢后會觸發DOMContentLoaded事件。

async

async腳本會在加載完畢后執行。
async腳本的加載不計入DOMContentLoaded事件統計,也就是說下圖兩種情況都是有可能發生的

推薦的應用場景

defer

如果你的腳本代碼依賴于頁面中的DOM元素(文檔是否解析完畢),或者被其他腳本文件依賴。

async

如果你的腳本并不關心頁面中的DOM元素(文檔是否解析完畢),并且也不會產生其他腳本需要的數據。

如果不太能確定的話,用defer總是會比async穩定。

原文鏈接:https://blog.csdn.net/weixin_44479322/article/details/119674427

欄目分類
最近更新