为了理解2个事件的异同,先了解一下HTML文档加载顺序

HTML DOM文档加载步骤

HTML DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关,一般浏览器渲染操作的顺序大致按如下几个步骤

1, 解析HTML结构

2,加载外部脚本和样式表文件

3,解析并执行脚本代码

4,构造HTML DOM模型

5,加载图片等外部文件

6,页面加载完毕

执行时机

  load 事件必须等到页面中所有内容全部加载完毕之后,才被执行,如果一个页面中包含了大数据的多媒体文件,则就会出现页面文档已经呈现出来,二由于网页数据还没有完全加载完毕,导致load事件不能够即使被触发。使得网页呈现和脚本初始化配置不能保存同步,从而影响了页面的可用性。

  而jQuery的ready是在DOM结构绘制完毕之后就执行,也就是说它先于外部文件的加载就被执行了,这样就能确保文档的呈现和脚本初始化保持同步。

  总之,ready事件先于Load事件被激活,如果网页文档中没有加载外部文件,则他们的响应时间基本上是相同的。

编写个数

  JavaScript的load事件只能够被编写一次,下面的写法是不允许的,此时他仅仅能够影响最后一次指定的事件处理函数,

  

<script type = 'text/javascript'>
window.onload = function(){
alert('页面初始化1');
}
window.onload = function(){
alert('页面初始化2');
}
window.onload = function(){
alert('页面初始化3');
}
</script>

如果希望这3个事件处理函数中的代码都被执行,则应该吧他们包含在一个处理函数中。

<script type = 'text/javascript'>
var f1 = function() {
alert("页面初始化1");
}
var f2 = function() {
alert("页面初始化2");
}
var f3 = function() {
alert("页面初始化3");
}
window.onload = function(){
f1();
f2();
f3();
} </script>

而对于JQuery 的ready事件类型来说,我们可以在同一个文档中多次定义,例如

<script src = "jquery.1.8.2.js" type = "text/javascript"> </script>
<script type = "text/javascript">
$(function() {
alert("页面初始化1");
});
$(function() {
alert("页面初始化2");
});
$(function() {
alert("页面初始化3");
});
</script>

这对于复杂页面中多次配置初始化程序非常重要,这样方便了用户根骨需要进行设计

  

参考自《jquery开发完全技术宝典》

jQuery 的ready事件和 JavaScript 的load事件对比的更多相关文章

  1. jQuery中ready与load事件的区别

    1.摘要 大家在编程中使用jQuery还有JS的时候一定会在使用之前这样: //document ready $(document).ready(function(){ ...code... }) / ...

  2. JavaScript学习之事件原理和实践

    1 基本概念 1.1 事件 JavaScript与HTML之间的交互是通过事件实现的. 事件是文档或浏览器窗口中发生的一些特定的交互瞬间,在事件上可以注册处理程序,以便当事件发生时,处理程序中的代码得 ...

  3. javascript 中的事件机制

    1.javascript中的事件. 事件流 javascript中的事件是以一种流的形式存在的. 一个事件会也有多个元素同时响应. 有时候这不是我们想要的效果, 我们只是需要某个特定的元素相应我们的绑 ...

  4. C# 调用load事件

    在一个函数或者事件中调用另外的事件,例如调用Load事件 private void EventForm_Load(object sender, EventArgs e) { //相关内容 } priv ...

  5. 【WPF】UserControl 的 Load事件

    经过查看MSDN,总结下 UserControl 的 Load 事件: Q1:Load事件什么时候发生? 在控件第一次变为可见之前发生. Load事件发生在创建 UserControl 时,因此有些情 ...

  6. 8. JavaScript学习笔记——事件

    8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...

  7. 文件load事件:img、iframe

    iframe的 load 事件 在所有为IFRAME动态添加onload监听事件的方法中,只有 使用事件监听方式为 IFRAME 的 onload 事件绑定处理函数,IE6.7.8才有效.所以为 IF ...

  8. jQuery $(document).ready()和JavaScript onload事件

    jQuery $(document).ready()和JavaScript onload事件 Why we need a right time? 对元素的操作和事件的绑定需要等待一个合适的时机,可以看 ...

  9. jQuery中ready与load事件

    jQuery中ready与load事件(来自慕课网) jQuery有3种针对文档加载的方法 $(document).ready(function() { // ...代码... }) //docume ...

随机推荐

  1. ab压测 apr_socket_recv: Connection reset by peer (104)错误解决方法

    用apache自带ab命令进行压测,报了如下错误: 原因是在ab的程序源码中对并发数有限制. 解决办法:修改apache源码support下面的ab.c源代码,然后重新编译.修改内容如下:

  2. 图论(floyd算法):NOI2007 社交网络

    [NOI2007] 社交网络 ★★   输入文件:network1.in   输出文件:network1.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 在社交网络( ...

  3. Remove Linked List Elements——LeetCode

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  4. 数据结构——POJ 1686 Lazy Math Instructor 栈的应用

    Description A math instructor is too lazy to grade a question in the exam papers in which students a ...

  5. .net快速创建PDF文档 by c#

    原文地址:http://www.cnblogs.com/Creator/archive/2010/03/13/1685020.html C#引用IText创建PDF文档 先引用IText    可以从 ...

  6. 使用Vagrant machine

    使用Vagrant 查看Vagrant状态 vagrant status SSH vagrant ssh 共享文件 在vagrantfile中添加共享文件配置 Vagrant.configure(2) ...

  7. 启动tomcat时报classpath not found

    启动tomcat时报classpath  not found 原因是缺包,首先查看tomcat安装地址,然后找到webapps目录下,找到该项目,看lib下是否缺包,不能单纯的看项目下是否缺包.

  8. Django之牛刀初试

    一.Django安装 1.使用pip安装django pip3 inistall django 2.将django-admin加入到环境变量中 # 如果是windows的系统需要操作这一步,linux ...

  9. IOS多线程的小总结

    ios中多线程的实现方案有4种    1.pthread :一套通用的多线程API/适用于Unix\Linux\Windows等系统 (跨平台可移植/使用难度大)    C语言    几乎不用     ...

  10. 浅析Android中的消息机制-解决:Only the original thread that created a view hierarchy can touch its views.

    在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...