亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5中defer和async的區別有哪些

發布時間:2021-07-02 11:20:04 來源:億速云 閱讀:365 作者:小新 欄目:web開發

小編給大家分享一下HTML5中defer和async的區別有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在HTML頁面中插入Javascript的主要方法,就是使用<script>元素。這個元素由Netscape創造并在Netscape Navigator 2中首先實現。后來,這個元素就被加入到正式的HTML規范中。HTML4.01為<script>定義了6個屬性,包括defer和async。defer和async都是可選的,且只對外部腳本文件有效。
 
一、當瀏覽器解析到script腳本,沒有defer或async時:
 
<script src="main.js"></script>

瀏覽器會立即加載并執行指定的腳本,“立即”指在渲染該script標簽之下的文檔元素之前,也就是說不等待后續載入的文檔元素,讀到就加載并執行。
 
二、當瀏覽器解析到script腳本,有async時:
 
<script async src="main.js"></script>

瀏覽器會立即下載腳本,但不妨礙頁面中的其他操作,比如下載其他資源或等待加載其他腳本。加載和渲染后續文檔元素的過程和main.js的加載與執行并行進行(異步)。
 
async不保證按照腳本出現的先后順序執行,因此,確保兩者之前互不依賴非常重要,指定async屬性的目的是不讓頁面等待兩個腳本的下載和執行,從而異步加載頁面其他內容,建議異步腳本不要在加載期間修改DOM。
 
異步腳本一定會在頁面的load事件前執行,但可能會在DOMContentLoaded事件觸發之前或之后執行。支持異步腳本的瀏覽器有Firefox 3.6、Safari 5 和Chrome。
 
三、當瀏覽器解析到script腳本,有defer時:
 
<script defer="defer" src="main1.js"></script>
<script defer="defer"  src="main2.js"></script>

表示腳本會被延遲到文檔完全被解析和顯示之后再執行,加載后續文檔元素的過程將和main.js的加載并行進行(異步)。HTML5規范要求腳本按照它們出現的先后順序執行,因此第一個延遲腳本會先于第二個延遲腳本執行,而這兩個腳本會先于DOMContentLoaded事件。在現實當中,延遲腳本并不一定會按照順序執行,也不一定會在DOMContentLoaded事件觸發前執行,因此最好只包含一個延遲腳本。
 
IE4~IE7還支持對嵌入腳本的defer屬性,但IE8以及之后的版本則完全支持HTML5規定的行為。
 
IE4,Firefox 3.5,Safari 5和Chrome是最早支持defer屬性的瀏覽器。其他瀏覽器胡忽略這個屬性,像平常一樣處理腳本,為此,把延遲腳本放在頁面底部仍然是最佳選擇。
 
藍色線代表網絡讀取,紅色線代表執行時間,這倆都是針對腳本的;綠色線代表 HTML 解析。
 
此圖告訴我們以下幾個要點:
 
defer 和 async 在網絡讀取(下載)這塊兒是一樣的,都是異步的(相較于 HTML 解析)

它倆的差別在于腳本下載完之后何時執行,顯然 defer 是最接近我們對于應用腳本加載和執行的要求的

關于 defer,此圖未盡之處在于它是按照加載順序執行腳本的,這一點要善加利用

async 則是一個亂序執行的主,反正對它來說腳本的加載和執行是緊緊挨著的,所以不管你聲明的順序如何,只要它加載完了就會立刻執行

仔細想想,async 對于應用腳本的用處不大,因為它完全不考慮依賴(哪怕是最低級的順序執行),不過它對于那些可以不依賴任何腳本或不被任何腳本依賴的腳本來說卻是非常合適的,最典型的例子:Google Analytics

看完了這篇文章,相信你對“HTML5中defer和async的區別有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淅川县| 信阳市| 嘉禾县| 辉县市| 楚雄市| 茌平县| 阿尔山市| 千阳县| 金华市| 宜兰市| 徐闻县| 马边| 邳州市| 紫金县| 凤山县| 石泉县| 南开区| 鄂托克旗| 漳浦县| 安阳市| 祁阳县| 赤壁市| 稻城县| 芜湖县| 衡水市| 英吉沙县| 博客| 监利县| 大宁县| 蓬安县| 新乡市| 图片| 南乐县| 伽师县| 奉节县| 虞城县| 宜君县| 五常市| 邹平县| 丹凤县| 鄯善县|