$(document).ready()和window.onload的区别

1.代码执行的时机
$(document).ready()是jQuery基于页面加载执行任务的一种主要方式

原生的 window.onload 事件也可以实现相同的效果。
虽然这两个方法具有类似的效果,但是,它们在触发操作的时间上存在着微妙的差异这种差异只有在加载的资源多到一定程度时才会体现出来。
window.onload 事件,当文档完全下载到浏览器时触发
这对编写功能性代码非常有利,因为无需考虑加载的次序。
$(document).ready() 注册的事件,会在DOM完全就绪并可以使用时调用,

虽然这也意味着所有元素对脚本而言都是可以访问的,但是,却不意味着所有关联的文件都已经下载完毕。换句话说,当HTML下载完成并解析为DOM树之后,代码就可以运行($(*).load可以解决不确定文件是否已经加载完成的问题,如果处理函数绑定给 window 对象,则会在所有内容 ( 包括窗口、框架、对象和图像等 ) 加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。 )。

2.基于一个页面执行多个脚本
window.onload示例:
1.(缺点行为没有分离)
2.window.onload = doStuff;(一次只能保存对一个函数的引用,不能在现有行为的基础上再增加新的行为)
(如果写成window.onload = doStuff();函数会被立即调用;没有圆括号,函数名就只是函数的标识符或函数引用,可以用于将来再调用函数)
$(document).ready() 机制能够很好地解决这个问题。每次调用这个方法都会向内部的行为队列中添加一个新函数,当页面加载完成后,所有函数都会被执行。而且,这些函数会按照注册它们的顺序依次执行 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值