如何用async屬性異步加載執行js的方法?相信很多新手小白還沒學會這個技能,通過這篇文章的總結,希望你能學會這個技能。以下資料是實現的步驟。
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引擎的瀏覽器(谷歌瀏覽器和Safari瀏覽器)?;鸷鼮g覽器從3.6版開始支持async 和 defer 屬性。IE也很早就支持 defer 屬性,但對async屬性不支持,在IE9中支持onload屬性。
看到各瀏覽器實現async
功能著實讓我非常高興。瀏覽器網站頁面時被JavaScript卡住的確是個很大的問題,async
屬性的異步加載、執行能力一定會讓網站的頁面速度增色不少。
看完這篇文章,你們學會用async屬性異步加載執行js的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。