HTML5讓我興奮的一個最大的原因是,它裡面實現的新功能和新特徵都是我們長久以來一直期待的。例如,我以前一直在使用placeholders,但以前必須要用JavaScript實作。而HTML5裡提供給JavaScript標記的async
屬性,讓JavaScript能非同步載入執行。之前我需要各種的JavaScript插件來實現這種功能,但現在這個新屬性能讓我們輕鬆的實作非同步載入。
真的非常簡單,就像下面這樣:
<script async src="siteScript.js" onload="myInit()"></script>
事實上,如果你是個有嚴謹精神的程式設計師,你應該在你90%以上的SCRIPT
標記上使用async
屬性。
還有一個跟async
屬性相似的defer
屬性:
<script defer src="siteScript.js" onload="myInit()"></script>
跟 async
屬性的在語法上非常相似。
這篇WebKit部落格將defer
和async之間
的不同之處解釋的非常清楚:
瀏覽器對標記有
async
屬性或defer
屬性的scripts會立即載入並解析,同時也會支援依賴這個腳本進行初始化的onload事件。async
屬性和defer
屬性的不同之處在於何時執行這個腳本。標註有async
屬性的Script會在下載完成後即可執行,不需要等待window的load事件。這意味著標記有async
屬性的腳本並不一定會按在頁面中嵌入的順序執行。而標記有defer
屬性的腳本卻一定會依照它們在頁面上的順序依序執行。執行會在解析完全完成後開始,但會在document的DOMContentLoaded
事件之前。
引用Safari部落格上的話:
WebKit引擎的瀏覽器(Google瀏覽器和Safari瀏覽器)。火狐瀏覽器從3.6版開始支援async 和 defer 屬性。 IE也很早就支持 defer 屬性,但對async屬性不支持,在IE9中支援onload屬性。
看到各瀏覽器實作async
功能著實讓我非常高興。瀏覽器網站頁面時被JavaScript卡住的確是個很大的問題,async
屬性的非同步載入、執行能力一定會讓網站的頁面速度增色不少。
推薦教學:《javascript基礎教學》
以上是使用async屬性非同步載入執行JavaScript的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!