[精讚] [會員登入]
9821

[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

你可能感興趣的文章

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

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

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

網頁自動轉址的四種方法 設定網頁自動轉址的四種方法,三種html,一種php

[CSS] HTML 畫出粗外框表格的方法 (粗框表格) 在畫表格的時候,習慣上表格的外框要比內部的線條來得粗,不但比較美觀,而且看起來比較完整

[CSS] placeholder 屬性的CSS怎麼設定? 常會用到的placeholder可以在沒填值時有提示的文字,想要改變格式該怎麼做?

隨機好文

使用Google尋找你的手機 這近發現google竟然可以用來找android的手機,而且不需要經過什麼設定或安裝軟體。

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

最值得學的電腦技能 什麼是最值得學的電腦技能?程式設計?美工繪圖?系統網路?還是…? 都不是!個人覺得一個最值得學的電腦技能就

[MySQL/Mariadb] console 將查詢結果輸出到檔案 在mysql 的console中該如何將查詢結果輸出到檔案?