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文件内引用解决该问题:
1、新建一个 .js 后缀的文件,文件内放入以下内容,并上传到您的网站空间或 CDN 中。
2、添加代码引用上述JS文件地址到网站头部<head>标签内。
1.浏览器搜索自身的DNS缓存2.搜索操作系统自身的DNS缓存
3.读取本地的HOST文件
4.浏览器发起一个DNS的系统调用
5.浏览器获得域名对应的IP地址后,发起HTTP"三次握手"
6.TCP/IP链接建立起来后,浏览器就可以向服务器发送HTTP请求了(例如有HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP1.0的一个协议)
7.服务器接收到了这个请求,根据路径参数,经过后端的一些处理之后,将js文件返回