`
那些年丶
  • 浏览: 10631 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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
分享到:
评论
6 楼 zhangfortune 2014-04-30  
那些年丶 写道
zhangfortune 写道
个人认为把JSP和js联合在一起讲就是不合理的。因为我了解到得时:JSP在服务端运行,js在客户端运行。为什么要把二者强制耦合在一起呢?

JS是WEB开发的辅助语言啊,JSP中需要在客户端可客户进行交互,就肯定会用到JS。


不是倚老卖老,既然你这么执着,我也不好说什么了。过一两年再回来看看这篇文章,再回复吧。
5 楼 那些年丶 2014-04-29  
zhangfortune 写道
个人认为把JSP和js联合在一起讲就是不合理的。因为我了解到得时:JSP在服务端运行,js在客户端运行。为什么要把二者强制耦合在一起呢?

JS是WEB开发的辅助语言啊,JSP中需要在客户端可客户进行交互,就肯定会用到JS。
4 楼 zhangfortune 2014-04-29  
个人认为把JSP和js联合在一起讲就是不合理的。因为我了解到得时:JSP在服务端运行,js在客户端运行。为什么要把二者强制耦合在一起呢?
3 楼 那些年丶 2014-04-29  
freezingsky 写道
JS和JSP是二回事,别总混在一起讲,不然,新手会越看越混的。

现在这两者基本上是分不开的。
2 楼 freezingsky 2014-04-28  
JS和JSP是二回事,别总混在一起讲,不然,新手会越看越混的。
1 楼 dongcb678 2014-04-28  
其实他们连html执行顺序都没搞清楚,再容个JSP,js里面写el和标签,凌乱了...哈哈

相关推荐

    JavaScript完全自学宝典 源代码

    \testJson\WebRoot\orderInfo.jsp 录入商品信息的JSP页面。 第21章(\c21) 示例描述:介绍Prototype框架。 21.1.html 使用Prototype的$()方法获取指定元素。 21.2.html 使用Prototype的$A()方法获取...

    教学、学习必备:jsp教案

    第2章 JSP页面 17 2.1JSP页面 17 2.1.1理解服务器端执行 17 2.1.2JSP页面的基本结构 17 2.1.3JSP的运行原理 18 2.1.4JSP页面的成员变量和方法 18 2.1.5JSP代码 19 2.1.6 Java程序片 20 2.1.7Java表达式 22 2.1.8JSP...

    常用js大全,javascript校验大全

    2.07 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语句 前执行该方法.. 121 2.08 检查EMail格式. 122 2.09 电话号码由数字和-组成. 123 2.10 检验IP地址 . 124 2.11 校验忽略样式内容后文本域中的内容...

    ARCH4系统开发指南

    2.6.3 在jsp页面中翻译代码 18 2.7 如何使用取单号服务 18 2.7.1 配置文件 19 2.7.2 取单号使用方式 19 2.8 如何使用Hibernate操作Informix数据库 20 2.8.1 实现对LOB数据对象的支持 20 2.8.1.1 配置...

    基于Struts2的图书管理系统源代码

    1. 基于Struts2框架进行编程设计,连接MySQL数据库实现数据的增删查改,应用Jsp、HTML、CSS、JavaScript对访问页面进行编写和美化。 2. 分别创建book表和user表,用以存放图书信息和用户数据。其中user表中,设有...

    js脚本大全 js验证大全 压缩包

    2.07 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语句 前执行该方法.. 121 2.08 检查EMail格式. 122 2.09 电话号码由数字和-组成. 123 2.10 检验IP地址 . 124 2.11 校验忽略样式内容后文本域中的内容...

    ASP.Net.Web程序设计

    7、简要说明在网页中插入JavaSCRIPT脚本的几种方式? 在网页中插入脚本语言通常有三种方式:使用SCRIPT标记符、在标记符中直接嵌入脚本以及链接外部脚本文件. 8、说明在网页中使用CSS的几种方式?CSS选择符的作用及...

    Java面试宝典2020修订版V1.0.1.doc

    32、SQL语句执行顺序 51 33、null的含义 52 34、mysql分页 52 35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、...

    Java面试宝典2010版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 32、是否可以继承String类? 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 34、String 和StringBuffer的区别 35...

    最新Java面试宝典pdf版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    在HTML中我们知道可以使用meta标识来定义网页的关键字,简介等,这些标识不会显示在网页中,但可以被搜索引擎搜索到,并影响搜索结果的排列顺序。 XML对这一原理进行了深化和扩展,用XML,你可以描述你的信息在...

    Java面试笔试资料大全

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    JAVA面试宝典2010

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    Java面试宝典-经典

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    java面试题大全(2012版)

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

    Java面试宝典2012版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer...

    java面试宝典2012

    这两行代码执行后,原始的String对象中的内容到底变了没有? 24 32、是否可以继承String类? 25 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 25 34、String 和StringBuffer的...

    Java面试宝典2012新版

    这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的...

Global site tag (gtag.js) - Google Analytics