$(document).ready()与window.onload()的区别
来源:互联网 发布:淘宝企业店铺申请资料 编辑:程序博客网 时间:2024/04/29 21:56
1.执行时机
$(document).ready()方法和window.onload方法功能相似的功能,但是在执行时机方面是有区别的。window.onload方法是在网页中的所有元素完全加载到浏览器后才执行,即javascript此时才可以访问网页中的任何元素。而通过$(docuement).ready()方法注册的时间处理程序,在DOM完全就绪时就可以被调用。此时,网页中的所有元素对jQuery而言都是可以访问的,但是这并不意味这这些元素关联的文件都已经下载完毕。
举一个例子,有一个大型的图库网站,为网页中所有的图片添加某些行为,例如单击图片后让它隐藏或显示。如果使用window.onload方法来处理,那么用户必须等到每一幅图片都加载完毕后,才可以进行操作。如果使用jQuery中的$(document).ready()方法来进行设置,只要DOM就绪就可以操作了,不需要等待所有的图片下载完毕。很显然,把网页解析为DOM树的速度比把网页中的所有关联文件加载完毕的速度快得多。由于在$(document).ready()方法内注册的时间只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的html下载完毕并已经解析为DOM树了,但很有可能图片还未加载完毕,例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用jQuery中领域各关于页面加载的方法----load()方法。load()方法会在元素的onload事件中绑定一个处理函数。如果处理函数绑定给window对象,则会在所有的内容加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。
2.多次使用
JavaScript中的onload事件一次只能保存对一个函数的引用,他会自动用后面的函数覆盖前面的函数,因此不能再现有的行为上添加新的行为。为了达到两个函数顺序触发的效果,只能在创建一个JavaScript方法来实现,但是这还是不能满足某些需求,例如有多个Javascript文件,每个文件都需要用到window.onload方法,这种情况下用上面提到的方法编写代码会非常麻烦,jquery中的$(document).ready()方法能够很好的处理这些情况,每次调用的$(document).ready()方法都会在现有的行为上追加新的行为,这些行为会根据注册的顺序依次执行。
- window.onload与$(document).ready()的区别
- window.onload 与 document.ready 的区别
- $(document).ready() 与 window.onload的区别
- window.onload与document.ready的区别
- $(document).ready() 与window.onload的区别
- $(document).ready() 与window.onload的区别
- $(document).ready()与window.onload的区别
- window.onload与$((document).ready())的区别
- $(document).ready() 与window.onload的区别
- $(document).ready()与window.onload的区别
- document.ready与window.onload的区别
- window.onload 与$(document).ready()的区别
- $(document).ready() 与window.onload的区别
- $(document).ready() 与window.onload的区别
- document.ready与window.onload的区别
- window.onload与$((document).ready())的区别
- $(document).ready()与window.onload的区别
- $(document).ready()与window.onload()的区别
- Hibernate关系映射多对一
- MyEclipse导入项目后,jsp文件报错解决方法
- [BZOJ2674]Attack(整体二分+树状数组套线段树)
- CSDN-markdown操作注解
- Python并发编程之协程/异步IO
- $(document).ready()与window.onload()的区别
- 关于ES6的一些浅薄的看法(1)
- Linux 树莓派平台简介
- Avro实现序列化和反序列化
- adf
- 给图片添加水印【png格式添加水印后背景保持透明】
- 字符串与数值类型的转化
- 2017/1/10 python学习 第一阶段
- 如何在Markdown编辑器中简单编辑数学公式