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

执行时间不同

$(document).ready()是在浏览器已经解析完整个html文档,dom树已经建立起来,但像图片等资源文件还没有加载之前的时候执行的。

window.onload是在整个页面所有元素(包括图片,引用文件)加载完成后执行。

综上所述,可知,ready是在load之前执行。

在此说明一下$(document).ready()的简写形式:$(function(){})

<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>onload ready 加载顺序</title>
	<script type="text/javascript" src="jquery.min.js"></script>
</head>

<body>
	<img src="https://img.alicdn.com/imgextra/i1/738517069/TB2mpLRnr4npuFjSZFmXXXl4FXa_!!738517069.jpg" width="100px" height="100px"/>
</body>
<script type="text/javascript">
window.οnlοad=function(){
	console.log("window onload");
};

$(document).ready(function(){
	console.log("document ready");
});
</script>
</html>

结果:

document ready

window onload

执行次数不同

$(document).ready()可以在javascript代码中出现多次,并且里面的函数或代码都可以得到执行。

window.onload只能在javascript代码中出现一次,如果有多个window.onload,那么只有最后一个window.onload里面的函数或代码才会被执行,之前的window.onload都将被覆盖。

此处提一下jQuery中的$(window).load(function(){}),功能和window.onload一样,但它可以在javascript代码中多次出现,每个都会被执行。

onload代码也可以作用于标签上:如:

<body οnlοad="f1();">

<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>onload ready 加载顺序</title>
	<script type="text/javascript" src="jquery.min.js"></script>
</head>

<body>
	<img src="https://img.alicdn.com/imgextra/i1/738517069/TB2mpLRnr4npuFjSZFmXXXl4FXa_!!738517069.jpg" width="100px" height="100px"/>
</body>
<script type="text/javascript">
window.οnlοad=function(){
	console.log("window onload1");
};
window.οnlοad=function(){
	console.log("window onload2");
};
window.οnlοad=function(){
	console.log("window onload3");
};
window.οnlοad=function(){
	console.log("window onload4");
};


$(window).load(function(){
	console.log("window load1");
});
$(window).load(function(){
	console.log("window load2");
});

$(function(){
	console.log("document ready1");
});
$(function(){
	console.log("document ready2");
});
$(function(){
	console.log("document ready3");
});
$(function(){
	console.log("document ready4");
});
</script>
</html>

结果:

document ready1

document ready2

document ready3

document ready4

window onload4

window load1

window load2

总结

一般建议能用$(document).ready()的不用window.onload,这样整个html页面的交互感要好,不会因为加载图片太慢,阻碍js的执行。但有些情况,可能要等页面的所有东西都加载完成后才可执行,此时就必须选用window.onload

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值