JSP页面中JS代码执行顺序

 

目前,有很多初学开发者对理解JSP代码的执行顺序上还比较混乱,经常有同事不清楚为什么有些js要写在下面。

首先,你要了解JSP的执行过程。

所有的JSP都会在客户端发出请求后被容器转译成servlet的源代码(java),然后再将源码(java)编译成servlet的类(class),放入到内存里面。

 

下面列举几个容易让人混淆的问题:

     1、JSP中onload,或者jquery的document.ready,或者简写的$(function),是不是就相当于servlet中的初始化init()方法;

           答案肯定是否定的,所有的jsp中的代码都是在service方法中执行的。这个你可以直接看jsp编译后的文件就一目了然了。

 

     2、onload和jquery的document.ready到底哪个先执行;

          onload指示页面包含图片等文件在内的所有元素都加载完成。

          document.ready表示文档结构已经加载完成(不包含图片等非文字媒体文件)。

          所以说:document.ready在onload 前加载。

 

     3、写在下面的js和document.ready哪个先执行;

          jsp就相当于java,所以执行顺序一样是从上往下,而ready是要在文档结构加载完成的情况下才执行,

          所以说,下面的js肯定是先执行。

          那如果把ready也写在下面呢,道理一样,也肯定是下面的js先执行。

 

     4、前几天有同事问我,为什么上面的js代码还没执行完,怎么就开始执行下面的代码了;

          我一看,原来他用到了好几个$.post方法,也就是ajax,

          ajax大家都知道是异步刷新机制,所以他肯定不会去等上面代码执行完,

          当然如果你功能需要ajax从上往下一步步执行,你可以给全局加个默认不异步的属性$.ajaxSetup({ async: false });

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值