亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

defer和async的區(qū)別

Meathill / 2041人閱讀

摘要:有,加載和渲染后續(xù)文檔元素的過程將和的加載與執(zhí)行并行進行異步。接著,我們來看一張圖咯藍色線代表網(wǎng)絡(luò)讀取,紅色線代表執(zhí)行時間,這倆都是針對腳本的綠色線代表解析。

文章來源 n?i?g?h?t?i?r?e? 大佬的回答

先來試個一句話解釋仨,當瀏覽器碰到 script 腳本的時候:

沒有 defer 或 async,瀏覽器會立即加載并執(zhí)行指定的腳本,“立即”指的是在渲染該 script 標簽之下的文檔元素之前,也就是說不等待后續(xù)載入的文檔元素,讀到就加載并執(zhí)行。

有 async,加載和渲染后續(xù)文檔元素的過程將和 script.js 的加載與執(zhí)行并行進行(異步)。

有 defer,加載后續(xù)文檔元素的過程將和 script.js 的加載并行進行(異步),但是 script.js 的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded 事件觸發(fā)之前完成。

然后從實用角度來說呢,首先把所有腳本都丟到 之前是最佳實踐,因為對于舊瀏覽器來說這是唯一的優(yōu)化選擇,此法可保證非腳本的其他一切元素能夠以最快的速度得到加載和解析。

接著,我們來看一張圖咯:

藍色線代表網(wǎng)絡(luò)讀取,紅色線代表執(zhí)行時間,這倆都是針對腳本的;綠色線代表 HTML 解析。

此圖告訴我們以下幾個要點:

defer 和 async 在網(wǎng)絡(luò)讀?。ㄏ螺d)這塊兒是一樣的,都是異步的(相較于 HTML 解析)
它倆的差別在于腳本下載完之后何時執(zhí)行,顯然 defer 是最接近我們對于應(yīng)用腳本加載和執(zhí)行的要求的
關(guān)于 defer,此圖未盡之處在于它是按照加載順序執(zhí)行腳本的,這一點要善加利用
async 則是一個亂序執(zhí)行的主,反正對它來說腳本的加載和執(zhí)行是緊緊挨著的,所以不管你聲明的順序如何,只要它加載完了就會立刻執(zhí)行
仔細想想,async 對于應(yīng)用腳本的用處不大,因為它完全不考慮依賴(哪怕是最低級的順序執(zhí)行),不過它對于那些可以不依賴任何腳本或不被任何腳本依賴的腳本來說卻是非常合適的,最典型的例子:Google Analytics

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/109234.html

相關(guān)文章

  • 拒絕js阻塞—defer、async作用區(qū)別分析

    摘要:阻塞原理瀏覽器內(nèi)核可以分成兩部分渲染引擎或者和引擎。等引擎運行完畢,瀏覽器又會把控制權(quán)還給渲染引擎,繼續(xù)和的構(gòu)建。執(zhí)行時,解析暫停。從加載完成立即執(zhí)行來看,模式執(zhí)行順序與寫的順序無關(guān),不保證執(zhí)行順序。 js阻塞原理 瀏覽器內(nèi)核可以分成兩部分:渲染引擎(Layout Engine 或者 Rendering Engine)和 JS 引擎。早期渲染引擎和 JS 引擎并沒有十分明確的區(qū)分,但隨...

    wuaiqiu 評論0 收藏0
  • Script標簽腳本執(zhí)行順序 - 文檔加載 - 面向瀏覽器編程

    摘要:相關(guān)腳本會立即下載并執(zhí)行。從上面兩個例子,可以充分了解到標簽的柱塞式執(zhí)行。表示該標簽并不柱塞,也不同步執(zhí)行。屬性帶有屬性的腳本,同樣會推遲腳本的執(zhí)行,并且不會阻止文檔解析。同時,帶有的腳本彼此之間,能保證其執(zhí)行順序。 原文: http://pij.robinqu.me/Browser_Scripting/Document_Loading/ScriptTag.html 源...

    cangck_X 評論0 收藏0
  • Sdk加載阻塞頁面渲染問題總結(jié)

    摘要:由于始終沒有還原阻塞時的情形,無法截圖。寫模擬場景,由于當時的場景是外鏈是加載阻塞,而不是執(zhí)行阻塞,暫時沒有有效模擬。但是可以確定的是,使用或可以有效解決,外鏈阻塞內(nèi)部執(zhí)行的問題。 由于始終沒有還原阻塞時的情形,無法截圖。在正常情況下,是無法區(qū)別是否使用defer的區(qū)別的。后續(xù)看一下是否能模擬場景。寫demo模擬場景,由于當時的場景是外鏈是js加載阻塞,而不是js執(zhí)行阻塞,暫時沒有有效...

    AlphaGooo 評論0 收藏0
  • DOM中各種區(qū)別小節(jié)

    摘要:歡迎光臨小弟博客我的博客原文中的各種區(qū)別小節(jié)參考普通添加事件和事件綁定的事件監(jiān)聽與捕獲和冒泡和的區(qū)別 相信大家在DOM的實際開發(fā)與學(xué)習(xí)過程中,肯定也遇到不少需要比較的東西,這里我主要列比較以下幾點,更多的區(qū)別和總結(jié),希望想到和遇到的朋友給我留言哦。 clientHeight/scrollHeight/offsetHeight defer vs async 事件模型-捕獲/目標/冒泡...

    Guakin_Huang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<