1. 程式人生 > >延遲指令碼'defer'和非同步指令碼‘async’的異同點

延遲指令碼'defer'和非同步指令碼‘async’的異同點

  1. 在<script>標籤定義defer或者async 屬性,這兩個個屬性的用途是表明指令碼在執行時不會影響頁面構造,也就是說,指令碼會延遲到整個頁面解析完畢後再執行。在<script>中設定defer或者async屬性是告訴瀏覽器立即下載,但延遲執行。值得注意的是,defer或者async屬性只適合外部指令碼,對嵌入式指令碼不起作用;
  2. 在xhtml 文件中。需要將defer屬性設定成 defer=“defer”,async屬性設定成 async= “async”;
  3. 加了defer屬性的指令碼會先於DOMContentLoaded事件;
  4. 加了async屬性的指令碼一定會在load事件前執行,但有可能在DOMContentLoaded之前或之後執行林;
  5. 加了defer屬性的指令碼會按照他們的先後順序執行,async屬性的指令碼則不按照他們的先後順序執行,這是defer和async 最大的區別;