一.jsp页面中的代码执行加载顺序介绍 javascript
1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码。因此加载执行顺序是是java>jsp>js。 html
2. js在jsp中的加载顺序 java
页面上的js代码是html代码的一部分,因此页面加载的时候是由上而下加载。因此js加载的顺序也就是页面中<script>标签出现的顺序。<script>标签里面的或者是引入的外部js文件的执行顺序都是其语句出现的顺序,其中js执行的过程也是页面装载的一部分。 jquery
2.1 在js脚本中定义的全局变量和函数,均可以在后面的脚本中调用。变量的调用,必须是前面已经声明了的,不然变量返回的值是undefined。同一段脚本中,函数定义能够出如今函数的调用后面;若函数的定义和调用在两个脚本段中,函数调用在函数定义以前就会报函数未定义错误。 ajax
2.2 js中出现ajax的异步加载 浏览器
因为ajax的异步加载可能会致使语句的执行顺序并非按照语句的出现顺序来执行。下面以我作任务时遇到的问题为例: 服务器
在页面初始加载的时候须要向jsp发送请求来得到该页面所需的数据,在ajax成功函数中,对data的操做所需时间过长,就会致使在ajax函数外面的confirm与loadTree比data操做后面的语句先执行。最终在loadTree中使用data的值得时候就为空,此时全局变量openTab_Id就为空。 异步
二.关于JS和html代码的执行前后有关问题 jsp
关于JS和html代码的执行前后问题 函数
JS代码能够在html代码的<head>和<body>里面引用,因此按照解析html代码的前后顺序来决定JS的执行的前后顺序,能够看下面的一段代码来验证:
1.在<head>里面的JS谁先被引用,谁就优先执行,在本例中外部引用的JS第一个执行。紧接着下面的一个<script>“最早实行”代码执行。
2.在<body>里面的JS要比<head>里面的JS后执行,由于html代码是先执行<head>再执行<body>的,紧接着执行“中间执行1”,而后页面上执行html代码“This is my JSP page. ”,在按照顺序执行“中间执行2”的JS代码。
3.最后页面所有加在完成以后,就是从<head>一直到<body>所有执行完,出发页面加载完成函数onload(),而后处罚“最后执行”JS。
4.若是引入jquery以后,在$(document).ready(function(){。。。})里面的脚本是在页面全部的html所有加载完成以后再执行。
5.关于CSS样式,直接在标签后面style引用效果最强,在head里面定义的样式引用效果次之,在head里面引用外部的样式效果最弱,用JS改写的样式,通常比直接引用的样式要强。
<head>
<script type="text/javascript" src="temp.js"$amp;>amp;$lt;/script>
<script type="text/javascript">
alert("最早执行");
</script>
</head>
<body onload="alert('最后执行');">
<script type="text/javascript">
alert("中间执行1");
</script>
This is my JSP page. <br>
<script type="text/javascript">
alert("中间执行2");
</script> </body>