[精讚] [會員登入]
10124

[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

你可能感興趣的文章

產生模糊的文字 有時我們需要產生模糊的文字,類似毛玻璃看到的效果。

CSS 的 !important 意義 網頁的前端工程師非常頭痛的事,就是同時要處理 IE和 FF等不同的瀏覽器,更糟的是 IE 又分成了 6 7 8三種版本,

[HTLM5] 表單color、email、url、search、tel輸入類型 介紹HTML5好用的輸入類型:color、email、url,以及兩個形同雞肋的類型search、tel..

textarea計算字數和行數 textarea可以大量的放入文字,但要如何計算字數和行數呢?

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

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

隨機好文

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

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

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。