網站首頁 編程語言 正文
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
相關推薦
- 2022-08-04 Python+NumPy繪制常見曲線的方法詳解_python
- 2023-10-14 JAXB解析xml節點既有屬性又有值
- 2022-07-29 Linux磁盤管理方法介紹_linux shell
- 2022-07-04 C語言植物大戰數據結構堆排序圖文示例_C 語言
- 2022-06-24 PyTorch中permute的基本用法示例_python
- 2022-06-21 解決Git?Bash中文亂碼的問題_其它綜合
- 2022-04-15 C語言的程序環境與預處理你真的了解嗎_C 語言
- 2022-07-30 Redis全局ID生成器的實現_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支