jsp中的js代码非顺序加载

JavaScript026

jsp中的js代码非顺序加载,第1张

java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码。所以加载执行顺序是是java>jsp>js。

2. js在jsp中的加载顺序

页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载。所以js加载的顺序也就是页面中<script>标签出 现的顺序。<script>标签里面的或者是引入的外部js文件的执行顺序都是其语句出现的顺序,其中js执行的过程也是页面装载的一部分。

2.1 在js脚本中定义的全局变量和函数,都可以在后面的脚本中调用。变量的调用,必须是前面已经声明了的,否则变量返回的值是undefined。同一段脚本中,函数定义可以出现在函数的调用后面;若函数的定义和调用在两个脚本段中,函数调用在函数定义之前就会报函数未定义错误。

2.2 js中出现ajax的异步加载

由于ajax的异步加载可能会导致语句的执行顺序并不是按照语句的出现顺序来执行。下面以我做任务时遇到的问题为例:

在页面初始加载的时候需要向jsp发送请求来获得该页面所需的数据,在ajax成功函数中,对data的操作所需时间过长,就会导致在ajax函数 外面的confirm与loadTree比data操作后面的语句先执行。最终在loadTree中使用data的值得时候就为空,此时全局变量 openTab_Id就为空。

2.3控制js执行顺序

js是静态文件,jsp是动态文件,两个都可以用来保存复用函数。\x0d\x0a我明白楼主的意思,将某些javascript过程封装成函数放在单独的文件里可以提高复用,事实上我们在项目开发中的确有两种选择,就像楼主所说的一种是放在js文件,而另一种是放在jsp文件里。\x0d\x0a一般来说,放在jsp文件里可以获得比较好的灵活另,例如实现国际化,将js写在jsp文件里然后配合struts的标签是很容易实现的,但是这在js文件里就很难做到。\x0d\x0a但是js文件也有一个有点,就是可以让客户端缓存,比如说,一个网站可能有很多个页面需要引用某个js函数,如果这个函数放在jsp文件,然后在每个页面都include它,那么每次页面加载时都将重复下载这部分代码;但是,如果放在js文件的话,那么客户端在第一次引用该函数时下载js文件,在后面的使用中发现路径相同就直接引用本地缓存的js文件。因为它是静态文件所以能够缓存。\x0d\x0a总结一下,放在js文件可以降低网络传输量,所以,如果不是为了必须的灵活性,应该尽量使用js文件来保存javascript代码。

最好是单独写个文件夹,然后写个js文件放置然后在jsp页面通过<script src="js文件的相对地址">来导入。当然你写在<head>里也可以。最好能不写在页面里就不写在页面里。。实现一般都用外部js文件导入。一是分离开,方便修改。二是可以js代码复用。你想啊,只写在一个jsp里,如果我另一个要用怎么便????你复制过去吗???这个和java里的封装方法一个思想所以建议通过外部 js导入 像楼主提供的这种简单的js。一般直接放在页面中即可。我说的是方法比较多的情况才用外部文件。这个也不难区别的。