[精讚] [會員登入]
9903

[HTML5] script 的新增屬性 defer, async

script 的新增屬性 defer, async

分享此文連結 //n.sfs.tw/10323

分享連結 [HTML5] script 的新增屬性 defer, async@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 13:57:37 最後編修
2016-11-30 08:37:07 By 張○○
 

自動目錄

一般我們引入一個外部的javascript會使用這樣的寫法:

<script src="/path/to/your.js"></scrpt>

 * 預設用法
 * 下載後會先執行,執行完此js後頁面才會繼續繪製下去。
 * 如果這個js很大或是要執行不少時間,畫面會卡卡的

在HTML5中新增定義了三個屬性 async, defer

async屬性

<script async src="/path/to/your.js"></scrpt>

 * 一定要搭配 src的屬性才有作用
 * 下載後會先執行,但執行此js同時也繼續載入頁面及執行其他js。
 * 目前的所有瀏覽器都支援(2016)
 * 使用時機:此js和其他的js無連帶關係,即不需等待其他的js執行完,可獨立作業。

defer屬性

<script defer src="/path/to/your.js"></scrpt>

 * 一定要搭配 src的屬性才有作用
 * 要整個頁面都下載及分析完成後才會執行,非常類似於把js放在頁尾的情況。
 * 目前的所有瀏覽器都支援(2016)
 * 使用時機:此js一定要頁面全繪完再執行才行

async+defer屬性

<script async defer src="/path/to/your.js"></scrpt>

 * 一定要搭配 src的屬性才有作用
 * 要整個頁面都下載及分析完成後才會非同步執行這個js後面剩下的部分。

參考資料[2]有簡單明瞭的時序圖

測試

HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script async src="01.js"></script>
<script defer src="02.js"></script>
</head>
<body>
Page START<br/>
Page END
</body>

JS 01.js

alert(1);

JS 02.js

alert(2);

測試結果

頁面畫完->1->2

拿掉async和defer結果:

1->2->頁面畫完

參考資料

[1] http://www.w3schools.com/tags/att_script_async.asp

[2] http://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html

[3] http://blog.xuite.net/vexed/tech/61308318-script+tag+%E5%B1%AC%E6%80%A7+async+defer+%E5%B7%AE%E5%88%A5

END

你可能感興趣的文章

關閉瀏覽器表單的自動完成autocomplete 什麼是自動完成?就是當我們在網頁的輸入文字欄位中打入文字時,瀏覽器會把曾輸入過歷史記錄中找出來讓我們選擇。

表格如何選取一欄(選取一直行) 表格中要指選擇一列很容易,直接叫用的標籤即可,但是要選取一欄呢?

[HTLM5] 表單時間日期date/time輸入類型 介紹HTML5和時間有關的輸入類型date/datetime/datetime-local/month/time/week

[HTLM5] 表單number和range輸入類型 介紹HTML5和數字有關的輸入類型number/range 等類型

[HTML] 讓表格整欄上色的方法 過去我們要讓表格整欄上色,都得用很不方便的方法:該儲存格設定一個類別,指定他的樣式,現在有更好的方法

[HTML] CSS中的折字換行或不換行(防止容器破壞) 使用者留言時故意來用一串長長的且沒有任何空白的長字串,把你的容器破壞得很難看...

隨機好文

談借錢 人借錢時手心向上頭向下,人還錢時手心向下頭向上

Linux shell 的date表示法 linux下SHELL中的date表示法

好用的3+2碼郵遞區號查詢系統推薦 網路上找到用地址輸入判斷3+2碼郵遞區號的辨識率不高,除了這個網站…

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會

[PHP]解決ksort新增的SORT_NATURAL|SORT_FLAG_CASE方法 php>=5.4中ksort函數多了SORT_NATURAL 和 SORT_FLAG_CASE 旗標,對舊版的PHP中要怎麼辦?