網(wǎng)站首頁 編程語言 正文
script 標(biāo)簽 async 屬性
普通script
文檔解析的過程中,如果遇到script腳本,就會(huì)停止頁面的解析進(jìn)行下載(但是Chrome會(huì)做一個(gè)優(yōu)化,如果遇到script腳本,會(huì)快速的查看后邊有沒有需要下載其他資源的,如果有的話,會(huì)先下載那些資源,然后再進(jìn)行下載script所對(duì)應(yīng)的資源,這樣能夠節(jié)省一部分下載的時(shí)間 @Update: 2018-08-17)。
資源的下載是在解析過程中進(jìn)行的,雖說script1腳本會(huì)很快的加載完畢,但是他前邊的script2并沒有加載&執(zhí)行,所以他只能處于一個(gè)掛起的狀態(tài),等待script2執(zhí)行完畢后再執(zhí)行。
當(dāng)這兩個(gè)腳本都執(zhí)行完畢后,才會(huì)繼續(xù)解析頁面。
defer 屬性
文檔解析時(shí),遇到設(shè)置了defer的腳本,就會(huì)在后臺(tái)進(jìn)行下載,但是并不會(huì)阻止文檔的渲染,當(dāng)頁面解析&渲染完畢后。
會(huì)等到所有的defer腳本加載完畢并按照順序執(zhí)行,執(zhí)行完畢后會(huì)觸發(fā)DOMContentLoaded事件。
async
async腳本會(huì)在加載完畢后執(zhí)行。
async腳本的加載不計(jì)入DOMContentLoaded事件統(tǒng)計(jì),也就是說下圖兩種情況都是有可能發(fā)生的
推薦的應(yīng)用場(chǎng)景
defer
如果你的腳本代碼依賴于頁面中的DOM元素(文檔是否解析完畢),或者被其他腳本文件依賴。
async
如果你的腳本并不關(guān)心頁面中的DOM元素(文檔是否解析完畢),并且也不會(huì)產(chǎn)生其他腳本需要的數(shù)據(jù)。
如果不太能確定的話,用defer總是會(huì)比async穩(wěn)定。
原文鏈接:https://blog.csdn.net/weixin_44479322/article/details/119674427
相關(guān)推薦
- 2022-01-19 標(biāo)準(zhǔn)時(shí)間格式轉(zhuǎn)換(正則寫法)
- 2022-11-11 react中代碼塊輸出,代碼高亮顯示,帶行號(hào),能復(fù)制的問題_React
- 2022-09-24 pandas刪除某行或某列數(shù)據(jù)的實(shí)現(xiàn)示例_python
- 2022-08-30 DOM節(jié)點(diǎn)對(duì)象 、獲取節(jié)點(diǎn)、節(jié)點(diǎn)屬性、動(dòng)態(tài)操作DOM節(jié)點(diǎn)、toList1.0/toList2.0、
- 2023-02-02 C語言動(dòng)態(tài)內(nèi)存分配和內(nèi)存操作函數(shù)使用詳解_C 語言
- 2022-04-28 WPF路由事件之邏輯樹和可視樹遍歷_實(shí)用技巧
- 2022-11-22 Android?ConstraintLayout約束布局使用實(shí)例介紹_Android
- 2023-05-03 C++類與對(duì)象的基礎(chǔ)知識(shí)點(diǎn)詳細(xì)分析_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支