defer延遲腳本
js的引入<script></script>
被放在body的結(jié)束符之前逗鸣,這主要是為了讓頁面的所有節(jié)點被加載完了之后在執(zhí)行js代碼惕耕,不僅為了防止js獲取dom節(jié)點失敗的情況出現(xiàn),也是為了提高并行下載断盛。
如果一定要將script標簽放在head中得糜,又擔心無法獲取到dom節(jié)點的話斋射,可以如以下代碼形式定義延遲腳本defer:
<script type="text/javascript" defer="defer" src="js/hom.js" ></script>
defer的作用在于將腳本延遲到整個頁面都解析完畢之后再運行悠垛。等同于告訴瀏覽器立即下載js腳本咒吐,但延遲執(zhí)行野建。同時defer=“defer”定義的js腳本也會按照它們出現(xiàn)的先后順序執(zhí)行。
ps:defer只對外部腳本文件起作用
async 異步腳本:
<script type="text/javascript" async="async" src="js/hom.js" ></script>
異步腳本的作用與延遲腳本相對一致恬叹,同樣將腳本延遲到整個頁面都解析完畢之后再運行候生,也只對外部腳本文件起作用。唯一區(qū)別在于妄呕,標記為async的腳本并不保證按照它們的先后順序執(zhí)行