1. 程式人生 > >區分defer和async

區分defer和async

def 腳本 text view 腳本文件 節日快樂 就是 html5 ext

今天要介紹的讓腳本延遲加載,讓腳本延遲加載的方式有多種,最簡單粗暴的方法就是將 <script> 標簽放在 <body> 標簽的最下面,這樣就可以按照先後順序依次執行了,但是你有些情況還是想放在 <head> 標簽的下面,但是這個時候就要讓腳本延遲執行,因為頁面要先解析DOM再執行腳本。


方法一:使用HTML4.01為 <script> 標簽定義的 defer 屬性,IE4~7支持

方法二: 使用HTML5為 <script> 定義的 async 屬性,IE8己以上支持

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script type="text/javascript" defer="defer" src="example1.js"></script>
  <script type="text/javascript" defer="defer" src="example2.js"></script>
</head>
<body>
  <div>hello world</div>
</body>
</html>

註意上面兩個腳本都使用了 defer 屬性,但是這兩個腳本文件執行的先後順序是不確定,所以一個頁面最好只使用一個腳本延遲,除非他們沒有依賴關系才會這麽用。 async 屬性也同樣存在這樣的問題,他們兩唯一的區別就是兼容性問題了。如果想安先後順序依次執行,唯一的辦法就是放在 body 裏面才是更好的選擇。

今天是父親節,祝天下所有的父親節日快樂·!

區分defer和async