Jquery .ready()与window.onload的区别

22

使用 Jquery 的 ready() 函数与 window.onload 相比,有哪些优势?

// Jquery ready
$(document).ready(function() {

});

// window.onload
window.onload = function () {

}

2
首先,使用jQuery版本不会覆盖其他代码努力将某些内容附加到加载状态。但无论如何,“document.ready”事件与“window.onload”事件不同。 - CrayonViolent
1
这个问题有一个比原来链接的答案更好的答案。 - nroose
3个回答

40

取决于你想要做什么。

  • jQuery ready 会在 HTML 全部准备好,但图片和其他资源未完成时运行您的代码。这是您可以使用 JavaScript 更改 DOM 的最早时间,因此被广泛使用。(在现代浏览器中,它被原生事件DOMContentLoaded替代)。
  • window.onloadload事件)在所有东西完成加载后运行。图像、Flash 和一些脚本,但通常不包括样式表。用于仅在页面不再更改时运行的代码。

此外,window.onload仅能附加一个监听器,而您可以使用 jQuery ready 添加任意数量的监听器。若需在 window.onload 上添加多个事件,请使用 addEventListener

window.addEventListener('load', function () {

}, false);

2

是的,window.onload 只允许添加一个监听器。而 jQuery 的 ready 可以添加多个监听器。


2

Windows.onload 会等待页面上所有的东西(包括图像)加载完成后才触发。Document.ready 会在HTML加载完毕后立即触发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接