JavaScript 的window.onload
和 jQuery 的$(document).ready()
方法有什么区别?
ready
事件发生在加载 HTML 文档之后,而onload
事件发生在稍后,此时所有内容(例如图像)也已加载。
onload
事件是 DOM 中的标准事件,而ready
事件特定于 jQuery。 ready
事件的目的是它应该在文档加载后尽早发生,以便为页面中的元素添加功能的代码不必等待加载所有内容。
window.onload
是内置的 JavaScript 事件,但由于它的实现在浏览器中有微妙的怪癖(Firefox,Internet Explorer 6,Internet Explorer 8 和Opera ),jQuery 提供了document.ready
,它将这些内容抽象出来,并尽快解雇当页面的 DOM 准备就绪(不等待图像等)。
$(document).ready
(注意它不是 document.ready
,这是未定义的)是一个 jQuery 函数,包装并提供以下事件的一致性 :
document.ondomcontentready
/ document.ondomcontentloaded
- 一个新的事件,在加载文档的 DOM 时触发(可能是在加载图像等之前的某个时间); 再次,在 Internet Explorer 和世界其他地方略有不同window.onload
(甚至在旧浏览器中实现),在整个页面加载时触发(图像,样式等) $(document).ready()
是一个 jQuery 事件。一旦 DOM 准备好就会调用 JQuery 的$(document).ready()
方法(这意味着浏览器已经解析了 HTML 并构建了 DOM 树)。这使您可以在文档准备好被操作后立即运行代码。
例如,如果浏览器支持 DOMContentLoaded 事件(就像许多非 IE 浏览器那样),那么它将触发该事件。 (请注意,DOMContentLoaded 事件仅在 IE9 + 中添加到 IE 中。)
可以使用两种语法:
$( document ).ready(function() {
console.log( "ready!" );
});
或速记版本:
$(function() {
console.log( "ready!" );
});
$(document).ready()
要点:
jQuery
替换$
。 $(window).load()
。 window.onload()
是一个原生的 JavaScript 函数。当页面上的所有内容都已加载时,会触发window.onload()
事件,包括 DOM(文档对象模型),横幅广告和图像。两者之间的另一个区别是,虽然我们可以有多个$(document).ready()
函数,但我们只能有一个onload
函数。