相同点
两者都用于在网页加载完后执行相应代码块。
不同点
window.onload 在创建完 DOM 树后,所有外部资源(图片、Flash 动画等)加载完成,且整个页面在浏览器窗口中显示完毕之后,才会执行。只能注册一个。
1
2
3
|
window.onload =
function
() {
alert(
'window.onload'
);
};
|
$(document).ready 只需在 HTML 文档解析为 DOM 树后,就会执行。可以注册多个,多个 $(document).ready 的执行顺序并非单纯的顺序执行,其与嵌套层级也有一定的关系。详细参考这里:https://yq.aliyun.com/ziliao/24713
1
2
3
4
5
|
$(document).ready = (
function
(){
alert(
'$(document).ready'
);
});
// $(document).ready = function () {}; 的简写形式是 $( function () {} );
|
总结
ready 指解析至 DOM 就绪,onload 指所有资源加载完毕。ready 优先于 onload 发生,比 onload 缩短了等待时间。且 onload 只能注册一个,ready 可以注册多个。