1、window.onload和Jquery $(document).ready()的区别
执行时间:window.onload是网站结构,图片等加载完成之后再执行
(document).ready()是网站中DOM结构绘制完成过后就执行,不管图片什么的有没有加载完毕window.onload只能执行一个方法
(document).ready()可执行多个
window.onload
function first(){
alert(‘first’);
}
function second(){
alert(‘second’);
}
window.onload = first;
window.onload = second;
//只会执行第二个window.onload;不过可以通过以下方法来进行改进:
window.onload = function(){
first();
second();
}
$(document).ready()
(document).ready(){
function first(){
alert(‘first’);
}
function second(){
alert(‘second’);
}(document).ready(function(){
first();
}
$(document).ready(function(){
second();
}
//两条均会执行
}
2.window.onload没有简写, (docoument).ready(function())可以有简写: (function(){})
另外,需要注意一点,由于在
(document).ready()方法内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的html下载完毕,并且已经解析为DOM树了,但很有可能图片还没有加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用Jquery中另一个关于页面加载的方法—load()方法。Load()方法会在元素的onload事件中绑定一个处理函数。如果处理函数绑定给window对象,则会在所有内容(包括窗口、框架、对象和图像等)加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。Jquery代码如下:
(window).load(function (){
// 编写代码
});等价于 JavaScript 中的以下代码
Window.onload = function (){
// 编写代码
}