成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

defer和async的區(qū)別

Meathill / 1997人閱讀

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

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

先來(lái)試個(gè)一句話解釋仨,當(dāng)瀏覽器碰到 script 腳本的時(shí)候:

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

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

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

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

接著,我們來(lái)看一張圖咯:

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

此圖告訴我們以下幾個(gè)要點(diǎn):

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109234.html

相關(guān)文章

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

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

    wuaiqiu 評(píng)論0 收藏0
  • Script標(biāo)簽腳本執(zhí)行順序 - 文檔加載 - 面向?yàn)g覽器編程

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

    cangck_X 評(píng)論0 收藏0
  • Sdk加載阻塞頁(yè)面渲染問(wèn)題總結(jié)

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

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

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

    Guakin_Huang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<