`
砺雪凝霜
  • 浏览: 152367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你不知道的一些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 });

补充:

  • head中的js比body中的js先执行,body中的js比onload中的js先执行。
  1. 同一个script标签中的js的执行顺序跟顺序没有关系。
  2. 不同script标签中的js的执行顺序和script的位置先后正有关。

 原文:转自http://201403144819.iteye.com/blog/2056188

分享到:
评论

相关推荐

    read-You-Don-t-Know-JS:《你不知道JavaScript》 笔记

    你不知道的 JavaScript 阅读笔记相关可以在这里下载本书第一部分“作用域和闭包”随附的资料(代码示例、练习题等):可以在这里下载本书第二部分“this 和对象原型”随附的资料(代码示例、练习题等):作用域是...

    JS高阶函数原理与用法实例分析

    如果你已经用JavaScript编程了一段时间,你可能已经使用它们甚至不知道。 要完全理解这个概念,首先必须了解函数式编程是什么一等函数(first-Class Function)以及的概念。 函数式编程 在大多数简单的术语中,函数...

    你不知道的 Javascript (上卷)阅读计划-Faremax1

    1. 作用域基本概念和原理 2. 词法作用域 3. 函数作用域和块作用域 4. 变量提升 5. 闭包 1. 理解作用域和作用域链 2. 注意区分 ES5 和 E

    JavaScript运行原理分析

    (可参考你不知道的JS这本书),当JS控制器转到一段可执行的代码时(这段可执行代码就是编译阶段生成的),会创建与之对应的执行上下文(Excution Context简称EC)。执行上下文可以理解为执行环境(执行上下文只能由JS...

    JS轮播效果代码

    刚刚接触JS,网上找了一些关于无缝滚动的教程,但都大同小异,对我这种新手来说也只是会用,不知道什么意思,想要自己写个更是一头雾水.于是找了一些资料,详细说明一下JS无缝滚动的原理,相信看过这篇文章之后,自己写一个...

    JavaScript 接口原理与用法实例详解

    对于接口的好处,那么显而易见 首先促进代码的重用,对于开发来讲,还可以告诉程序员那些类都使用了什么方法,如果你事先知道接口那么就减少了你在编码的时候对类与类之间冲突,实现解耦。对于测试和调试也会变得...

    JavaScript版 数据结构与算法

    2-1 环境搭建 2-2 反转单词原理讲解 2-3 反转单词代码演示 2-4 计算子串原理讲解 试看 2-5 计算子串代码演示第3章 基础算法之“数组类”数组是JS世界里必不可少的类型,“小小”的数组,“大大”的世界,一维、二维...

    你不知道的高性能JAVASCRIPT

    本文会分享一些高效的JavaScript的最佳实践,提高大家对JS的底层和实现原理的理解。 数据存储 计算机学科中有一个经典问题是通过改变数据存储的位置来获得最佳的读写性能,在JavaScript中,数据存储的位置会对代码...

    正则表达式产生器Regexgen.js.zip

    可以这么说,如果你切确知道存在某个表达式可以达成你的任务,但是却经常需要查表才能写出正确的表达式,那么 RegexGen.js 也许就可以帮到你。即使是正则表达式的初学者,也能够从 RegexGen.js 相对容易理解的表现...

    【JavaScript源代码】深入JS继承.docx

    深入JS继承  目录 前言准备总结继承的n种方式原型式继承原型链式继承借用构造函数(类式继承...撇开ES6 class不谈,传统的继承方式你知道几种?每种实现原理是什么,优劣点能谈谈吗。这里就结合具体例子,按照渐进式的

    JavaScript事件委托原理与用法实例分析

    在日常中,我们可能会听到事件委托这样的概念,有些同学可能对事件委托已经很了解了,也有些同学可能只是听过事件委托,只是会简单的使用,但是对于事件委托的原理不怎么知道。所以该博文会解释一下原生js的事件委托...

    通过实例了解JS执行上下文运行原理

    我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.log('听风是风'); }; f1(); //echo function ...

    Node.js中require的工作原理浅析

    几乎所有的Node.js开发人员可以告诉你`require()`函数做什么,但我们又有多少人真正知道它是如何工作的?我们每天都使用它来加载库和模块,但它的行为,对于我们来说反而是一个谜。 出于好奇,我钻研了node的核心...

    JavaScript构造函数原理及实现流程解析

    在学习构造函数之前我们需要知道我们学习构造函数需要学习什么: 1.什么是构造函数 2.构造函数用来做什么 3.构造函数的执行过程 4.构造函数的返回值 1.所以首先我们需要知道什么是构造函数: 在我看来,构造函数...

    JavaScript设计模式之门面模式原理与实现方法分析

    本文实例讲述了JavaScript设计模式之门面模式原理与实现方法。分享给大家供大家参考,具体如下: 外部与一个子系统的通信必须通过一个系统的一个门面对象进行,这就是门面模式。 门面模式具备如下两个角色: 1. 门面...

    JavaScript如何控制Session实现原理及代码

    看到这个题目,或许有人会提出疑问,JavaScript代表客户端,而Session代表的是服务器(不知道这样说大家是否能够理解)现在就回到了题目所描述的问题写一个JavaScript方法,使其修改Session,感兴趣的朋友可以了解下...

    Javascript 匿名函数及其代码模式原理

    本文将带你了解匿名函数的代码模式原理。 OK,先来看看更多匿名函数调用模式: 代码如下: (function(){alert(1);}()) (function(){alert(2);})() void function(){alert(3);}() 以上3个都是...

    深入解析JS实现3D标签云的原理与方法

    做出来后,突然想起以前看过的3D标签云,在以前觉得真心狂拽酷炫叼啊,当时也确实不知道怎么在平面上模拟3D,所以也就没去搞了。现在刚好用了canvas搞3D,也发现,好像3D标签云也差不多,然后就写了一下。 具体怎么...

Global site tag (gtag.js) - Google Analytics