jQuery 的ready事件和 JavaScript 的load事件对比

为了理解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>

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

  

时间: 2024-08-27 23:39:19

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

一、jQuery的ready与javascript中的onload加载时间对比

<script type="text/javascript"> var strtime = new Date().getTime(); $(function(){ var end1 = new Date().getTime(); var t1 = end1 - strtime; $("body").append("<p>jquery加载时间为: "+t1+"秒</p>"); }) funct

JavaScript学习之事件

1 基本概念 1.1 事件 JavaScript与HTML之间的交互是通过事件实现的. 事件是文档或浏览器窗口中发生的一些特定的交互瞬间,在事件上可以注册处理程序,以便当事件发生时,处理程序中的代码得到执行(这种模型对应设计模式中的观察者模式). 1.2 事件流 事件流描述的是从页面接受事件的顺序. 2 事件流 2.1 事件冒泡 IE事件流叫做事件冒泡,即事件开始由最具体的元素接受,然后逐渐向上传播到较为不具体的节点. 事件冒泡能够被所有浏览器支持.注意IE5.5及更早版本的事件冒泡会跳过<ht

javascript鼠标中键滚动事件介绍

javascript鼠标中键滚动事件介绍:在实际应用中,鼠标的一些事件非常常用,例如,onclick事件.onmouseover事件等,这里就不介绍了,具体可以参阅javascript的onclick事件和javascript的onmouseover事件一章节. 还有一种事件比较少用,那就是鼠标中键滚轮滚动事件,下面就通过代码实例简单介绍一下中键滚轮事件.IE浏览器和谷歌浏览器支持mousewheel事件,也就是鼠标中键滚动事件,但是遗憾的是火狐浏览器并不支持此事件,而是支持DOMMouseSc

【WPF】UserControl 的 Load事件

经过查看MSDN,总结下 UserControl 的 Load 事件: Q1:Load事件什么时候发生? 在控件第一次变为可见之前发生. Load事件发生在创建 UserControl 时,因此有些情况下Load事件会被调用多次,比如 UserControl加载时,或者重建操作时(一种情况是调用 RecreateHandle方法,重新为控件创建句柄). Q2:使用Load事件需要注意什么? 如果UserControl是一个MDI子窗体的一部分,那么每次子窗体每次显示时都会触发Load事件. 由于

文件load事件:img、iframe

iframe的 load 事件 在所有为IFRAME动态添加onload监听事件的方法中,只有 使用事件监听方式为 IFRAME 的 onload 事件绑定处理函数,IE6.7.8才有效.所以为 IFRAME 添加load事件完美方案如下: // 事件监听兼容方案 function addEvent(elem,event,fn){ if (elem.attachEvent) { elem.attachEvent('on'+event,fn) } else { elem.addEventListe

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

对元素的操作和事件的绑定需要等待一个合适的时机,可以看下面的例子: <!DOCTYPE html> <meta charset="utf-8"> <html> <head> <title>1-1</title> <script type="text/javascript"> document.getElementById("panel").onclick = fu

jQuery的ready与js的load事件的区别

摘自:http://www.cnblogs.com/see7di/archive/2011/07/15/2239677.html 为了理解这两个事件的异同,读者应该先了解HTML文档加载的顺序. DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关系.一般浏览器渲染操作的顺序大致按如下几个步骤来完成.(1) 解析HTML结构.(2) 加载外部脚本和样式表文件.(3) 解析并执行脚本代码.(4) 构造HTML DOM模型.(5) 加载图片等外部文件.(6) 页面加载完毕. 具体说明如下.1. 执

jQuery中ready与load事件的区别

目录: 1ready与load谁先执行 2DOM文档加载的步骤 3ready事件 4load事件 5总结 概述: 大家在工作中用jQuery的时候一定会在使用之前这样: 1 2 3 4 5 6 7 8 //document ready $(document).ready(function(){     ...code... }) //document ready 简写 $(function(){     ...code... }) 有些时候也会这么写: 1 2 3 4 //document lo

jQuery中ready与load事件

jQuery有3种针对文档加载的方法 $(document).ready(function() { // ...代码... }) //document ready 简写 $(function() { // ...代码... }) $(document).load(function() { // ...代码... }) 一个是ready一个是load,这两个到底有什么区别呢? ready与load谁先执行:大家在面试的过程中,经常会被问到一个问题:ready与load那一个先执行,那一个后执行?答