1. 程式人生 > >script標籤到底放哪

script標籤到底放哪

1,就速度而言:

將<script>放頭部,會先下載js檔案再執行html,給使用者感覺卡;

將<script>放最後,對於高度依賴js的html,會顯得慢。

async和defer屬性讓瀏覽器一邊下載js,一邊解析html。

async屬性的script會非同步執行,只要下載完就執行,這會導致script2.js可能先於script1.js執行。

defer就能保證script有序執行,script1.js先執行,script2.js後執行

 2,就執行函式任務而言

如果函式中有用到html中的屬性,值等,需要等待html被解析完再執行函式(因為瀏覽器是按順序執行,解析程式碼的)。例如:

若在head頭部呼叫函式aler();

function alert(){

var x1=document.getElementById("div1");

alert(x1.value);

}

aler(); //瀏覽器毫無反應

html:

<div id="div1">HELLO</div>

若在被使用了屬性的標籤之後呼叫函式:

function aler(){

........}

html:

<div id="div1">HELLO</div>

<script>

aler(); //HELLO;

</script>