1. 程式人生 > >js和jsp的執行順序

js和jsp的執行順序

jsp頁面中的程式碼執行順序一直很不清楚,最近把這個給理了理

1、js指令碼執行順序優先於html標籤

不明白的試試執行這個頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>無標題 3</title> 
<script>
    alert("1-最先執行"); 
</script> 
</head> 
<body onload="alert('3-最後執行');"> 
<script>
    alert("2-接著執行"); 
</script> 
</body> 
</html>


2、分成多段的script指令碼中,分段按順序載入,相互的全域性變數和函式可以互相呼叫

在js指令碼中,函式定義可以放在函式執行後面。

<script type="text/javscrpt">//<![CDATA[
  aa();            //瀏覽器報錯//]]>
</script>
<script type="text/javscrpt">//<![CDATA[
  aa();   //輸出 1 
  function aa()
  {
    alert(1);
  }//]]>
</script>

3、當js指令碼中有document.write時,該部分內容會在載入完前面的html標籤後再執行

4、當頁面中有jsp程式碼時,先執行jsp程式碼,將相應結果寫入根據jsp所處位置嵌入html標籤中,再執行其他的

因為jsp程式碼是在伺服器端執行,伺服器先根據jsp生成靜態的html頁面,再將html傳送給瀏覽器,瀏覽器再載入對應的程式碼

4、js指令碼必須放在head或body裡面,不然提示invalid location of tag(script)

總結一下,其實jsp頁面完完全全就是按順序來執行的,至於前面說的會先執行js指令碼再執行html,只是onload的特殊情況

看這個程式碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>無標題 3</title> 
<script>
    alert("1-最先執行"); 
</script> 
</head> 
<body onload="alert('3-最後執行');"> 
我才是第二執行的
<script>
    alert("2-接著執行"); 
</script> 
</body> 
</html>