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>
这对于复杂页面中多次配置初始化程序非常重要,这样方便了用户根骨需要进行设计
参考自《jquery开发完全技术宝典》
jQuery 的ready事件和 JavaScript 的load事件对比的更多相关文章
- jQuery中ready与load事件的区别
1.摘要 大家在编程中使用jQuery还有JS的时候一定会在使用之前这样: //document ready $(document).ready(function(){ ...code... }) / ...
- JavaScript学习之事件原理和实践
1 基本概念 1.1 事件 JavaScript与HTML之间的交互是通过事件实现的. 事件是文档或浏览器窗口中发生的一些特定的交互瞬间,在事件上可以注册处理程序,以便当事件发生时,处理程序中的代码得 ...
- javascript 中的事件机制
1.javascript中的事件. 事件流 javascript中的事件是以一种流的形式存在的. 一个事件会也有多个元素同时响应. 有时候这不是我们想要的效果, 我们只是需要某个特定的元素相应我们的绑 ...
- C# 调用load事件
在一个函数或者事件中调用另外的事件,例如调用Load事件 private void EventForm_Load(object sender, EventArgs e) { //相关内容 } priv ...
- 【WPF】UserControl 的 Load事件
经过查看MSDN,总结下 UserControl 的 Load 事件: Q1:Load事件什么时候发生? 在控件第一次变为可见之前发生. Load事件发生在创建 UserControl 时,因此有些情 ...
- 8. JavaScript学习笔记——事件
8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...
- 文件load事件:img、iframe
iframe的 load 事件 在所有为IFRAME动态添加onload监听事件的方法中,只有 使用事件监听方式为 IFRAME 的 onload 事件绑定处理函数,IE6.7.8才有效.所以为 IF ...
- jQuery $(document).ready()和JavaScript onload事件
jQuery $(document).ready()和JavaScript onload事件 Why we need a right time? 对元素的操作和事件的绑定需要等待一个合适的时机,可以看 ...
- jQuery中ready与load事件
jQuery中ready与load事件(来自慕课网) jQuery有3种针对文档加载的方法 $(document).ready(function() { // ...代码... }) //docume ...
随机推荐
- MongoDB主从配置
master的配置 # cat mongod.conf dbpath = /app/sinova/mongodata/db #指定数据库目录 logpath = /app/sin ...
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
目前的项目网站架构中使用了F5和nginx,F5用来做负载均衡,nginx只用作反向代理服务器.最近应客户的要求准备去掉F5,使用软负载.大家都知道nginx抗并发能力强,又可以做负载均衡,而且使用n ...
- (转载)调用ob_end_flush()网页仍旧不能显示有关问题
(转载)http://www.myexception.cn/php/558638.html 调用ob_end_flush()网页仍旧不能显示问题?写了一个简单的demo,理论上调用ob_end_flu ...
- 贪心:SPOJ Backup Files
BACKUP - Backup Files no tags You run an IT company that backs up computer data for large offices. ...
- 【贪心】Codeforces 704B & 705D Ant Man
题目链接: http://codeforces.com/problemset/problem/704/B 题目大意: 给N个点,起点S终点T,每个点有X,A,B,C,D,根据I和J的X坐标可得I到J的 ...
- L - Subway - POJ 2502
题意:在一个城市里,分布着若干条地铁线路,每条地铁线路有若干个站点,所有地铁的速度均为40km/h.现在你知道了出发地和终点的坐标,以及这些地铁 线路每个站点的坐标,你的步行速度为10km/h,且你到 ...
- [置顶] SpecDD系列:6个确保您执行“充分”QA测试的技巧
确保团队执行 “足够的” 测试覆盖面是非常困难的,尤其是对敏捷开发团队来说.对于初学者而言,一个开发Sprint中要完成多少的质量保证工作才够呢?我们知道,敏捷的标准是在开发Sprint结束的时候要完 ...
- Java学习的随笔(2)Java语言的三大特性
1.面向对象的三大特性 面向对象的三大特性主要包括:继承.封装.多态 (1)继承:就是指子类(导出类)获得了基类的全部功能(所有的域和方法). 注:在子类中,想要调用基类的方法可以使用“super. ...
- nvl,空时的推断和取值
nvl NVL的概念 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:假设string1为NULL,则NVL函数返回replace_wi ...
- CF 295E Yaroslav and Points(Splay)
题目大意: 两个操作 1 id op 把id的位置+op 2 id op 查询在[id.op]之间的全部的数的差 思路: 关键是pushup函数. 自己退一下会发现.跟区间的总和,区间的节点个数有 ...