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 οnlοad="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 οnlοad="alert('3-最后执行');">
我才是第二执行的
<script>
alert("2-接着执行");
</script>
</body>
</html>