jQuery的运行机制(onload与ready的差别)

结论得出前自行測试: 为了測试是否真如所说的那样,所以在页面插入了20000张照片,照片数量少得不出什么结论,所以改用console.log()来測试。这样一来我能够非常好的看出在页面最底端有没有都载入出来,还有是打印出的结果的事件顺序。

所用到的JS代码是:

console.time('name');
window.onload = function() {
console.log('onload2');
console.timeEnd('name');
}

一開始我是把console.timeEnd('name');放在onliad后面,onload是单独区分开,可是出现的问题是显示时间为0

所以找出原因是,onload在页面都运行完后,也就是标签以及图片都载入出来后才运行对应的JS代码,

执行測试后; onload在20000张照片的强大作用下耗时:30ms



Ready的測试:

所用到的JS代码是:

console.time('name');
console.time('name');
$(document).ready(function(){
console.log('ready1');console.timeEnd('name');
})

在执行ready的JQ代码时,Ready是在页面还未都载入完毕就显示结果了,且时间是20ms

在測试时候我增加了两个onload,这时候,还有增加两个ready做測试,

window.onload = function() {
console.log('onload1');
}
window.onload = function() {
console.log('onload2');
}

console.time('name');
$(document).ready(function(){
console.log('ready1');
})
console.time('name');
$(document).ready(function(){
console.log('ready2');
})

显示执行结果是:

能够看出,在基于前面的总结情况下,ready比onload先行输出结果,也就是运行的机制不同。再来看,onload2输出。onload1却没有输出,能够看出,在编写个数显示出来的时候。ready支持编写多个个数。并且是依照顺序输出的,而onload仅仅支持一个,后者优先级高选择后者。

总结:

① 运行时机:

onload:在整个document文档(包含了载入图片等其它信息)载入完毕后就能够直接对dom进行操作,比方一张图片要等这个图标载入完毕之后才干设置图片的宽高的属性或样式等。

ready :是在dom载入完毕后就能够直接对dom进行操作,比方一张图片仅仅要<img>标签完毕,不用等这个图片载入完毕,就能够设置图片的宽高的属性或样式等;

② 编写个数:

<script>

     window.onload = function() {

          alert(1);

     }

     window.onload = function() {       // 仅仅弹出11

          alert(11);

     }

     $(document).ready(function() {    // 依照顺序弹出 2  22 

          alert(2);

     });     

     $(document).ready(function() {

          alert(22);

     });     

  </script>



执行结果:弹出顺序:  2--->22--->11

③ 简写

Window.onload 没有简写形式

$(document).ready() 能够简写成$()

$()  ===   $(document).ready


 $(document).ready(function(){ alert(2);
  
 });


等价于:

 $(function(){ alert(2);

   })

JS中的onload与jQuery中的ready差别的更多相关文章

  1. js中window.onload 与 jquery中$(document.ready()) 測试

    js中window.onload 与 jquery中$(document.ready())差别,验证代码例如以下(调换js代码和Jquer代码书写顺序測试.执行结果一样.因此与代码书写位置没关系): ...

  2. JS的window.onload与JQuery的$(document).ready(function(){})的区别

    前段时间去面试被问及JS的加载(onload)与jQuery中加载(ready)方法的区别,瞬时懵逼了,关于这个知识点平时还真没怎么注意. 最近先来无事便查了一下资料, onload 事件(W3c上给 ...

  3. HTML5中的data-*属性和jQuery中的.data()方法使用

    原文地址链接:http://blog.csdn.net/fly_zxy/article/details/50687691: HTML5中的data-*属性 我们往往会根据需要在HTML标记上添加自定义 ...

  4. window.onload和JQuery中$(function(){})的区别即其实现原理

    一.区别 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. 在Jquery中$(function(){ })和$(document).ready(function(){ ...

  5. css中:not()选择器和jQuery中.not()方法

    因为老是将这两个的not方法弄混,所以写一下备忘. css中:not()选择器用法 :not 伪类选择器可以筛选不符合表达式的元素,:not(selector) 其中的selector为css选择器 ...

  6. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解

    1.(function($) {…})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){…} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...

  7. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解 ----转载

    1.(function($) {-})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...

  8. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详解

    1.(function($) {…})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){…} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...

  9. js中onload和jQuery中的ready区别

    window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. ------>不能写多个(如果有多个,只会执行一个) $(document).ready()是DOM结构绘制完毕后 ...

随机推荐

  1. array_unique和array_flip 这两个函数的区别

    array_unique和array_flip 这两个函数的区别 标签(空格分隔): php array_unique 和 array_flip 验证 1 没有排序的数组 2 array_unique ...

  2. Java类和对象11

    首先,编写一个类ChongZai,该类中有3个重载的方法void print():其次,再编写一个主类来测试ChongZai类的功能. public class ChongZai { public v ...

  3. 数据绑定的知识点<%%>,<%#%>,<%=%>

    1.<% %>用来绑定后台代码 如: < % for(int i=0;i<100;i++) { Reaponse.Write(i.ToString()); } %> 2. ...

  4. centos 安装 aria2 webui 实现网页下载

    centos aria2 webui 安装aria2 安装 rpmforge源 wget http://repository.it4i.cz/mirrors/repoforge/redhat/el6/ ...

  5. 使用 swoole_process 实现 PHP 进程池

    swoole_process 主要是用来代替 PHP 的 pcntl 扩展.我们知道 pcntl 是用来进行多进程编程的,而 pcntl 只提供了 fork 这样原始的接口,容易使用错误,并且没有提供 ...

  6. 紫书 例题 10-25 UVa 1363(找规律)

    可以发现余数是成一段一段的等差数列的. 在商数同的时候,余数是成首项为第一个数的余数,公差 为商数的等差数列. 利用这个性质求解即可. #include<cstdio> #include& ...

  7. 洛谷 P2104 二进制

    P2104 二进制 题目描述 小Z最近学会了二进制数,他觉得太小的二进制数太没意思,于是他想对一个巨大二进制数做以下 4 种基础运算: 运算 1:将整个二进制数加 1 运算 2:将整个二进制数减 1 ...

  8. javascript小白学习指南1---0

    第二章 变量和作用域    在看第二章时我希望,你能够回想一下前一次所讲的内容  假设有所遗忘 点这里    今天我们来说说 变量和作用域的问题 本章主要内容 基本类型和引用类型 运行环境 垃圾回收( ...

  9. Trie树的常见应用大总结(面试+附代码实现)

    (一)Trie的简单介绍 Trie树,又称字典树,单词查找树或者前缀树.是一种用于高速检索的多叉树结构,如英文字母的字典树是一个26叉树.数字的字典树是一个10叉树. 他的核心思想是空间换时间,空间消 ...

  10. MountService整理

    刚毕业时第一个接触的模块就是Vold.这个模块尽管小,但深入下去是有一定难度的. 花了点时间又一次整理了下这一块的逻辑,也当温习下这个模块. watermark/2/text/aHR0cDovL2Js ...