JavaScript的窗口之间有什么区别。onload和jQuery的$(document).ready()方法?
当前回答
ready事件发生在HTML文档加载之后,而onload事件发生在稍后,当所有内容(例如图像)也已加载时。
onload事件是DOM中的标准事件,而ready事件是特定于jQuery的。ready事件的目的是,它应该在文档加载后尽可能早地发生,以便向页面中的元素添加功能的代码不必等待所有内容加载完毕。
其他回答
有一件事要记住(或者我应该说要记住),你不能像准备好了一样叠在一起。换句话说,jQuery神奇地允许在同一个页面上有多个readys,但是onload不能做到这一点。
最后一个onload将否决之前的任何onload。
处理这个问题的一个好方法是使用一个显然由Simon Willison编写的函数,并在使用多个JavaScript Onload函数中进行了描述。
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
// Example use:
addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
/* More code to run on page load */
});
窗口。onload是内置的JavaScript事件,但是由于它的实现在浏览器(Firefox、Internet Explorer 6、Internet Explorer 8和Opera)上有一些微妙的特点,jQuery提供了文档。ready,它将这些抽象出来,并在页面的DOM准备好后立即触发(不等待图像等)。
美元(文档)。准备(注意,这不是文档。ready(未定义)是一个jQuery函数,包装并提供以下事件的一致性:
DOMContentLoaded -一个新的事件,当文档的DOM加载时触发(这可能是在图像等加载之前的一段时间);同样,在ie浏览器和世界其他地方略有不同 和窗口。Onload(即使在旧浏览器中也实现了),当整个页面加载(图像,样式等)时触发。
该文档。ready事件发生时,HTML文档已加载,窗口。Onload事件总是稍后发生,当所有内容(图像等)都已加载。
你可以使用文档。Ready事件,如果你想在渲染过程中“早期”介入,而不等待图像加载。 如果你需要图像(或任何其他“内容”)在你的脚本“做一些事情”之前准备好,你需要等到window.onload。
例如,如果您正在实现“幻灯片显示”模式,并且需要根据图像大小执行计算,则可能希望等到window.onload。否则,您可能会遇到一些随机问题,这取决于图像加载的速度。您的脚本将与加载图像的线程同时运行。如果脚本足够长,或者服务器足够快,如果图像恰好及时到达,您可能不会注意到问题。但是最安全的做法是允许图像被加载。
文档。Ready可以是一个很好的事件,让你向用户显示一些“loading…”标志,并在窗口上显示。onload,你可以完成任何需要加载资源的脚本,然后最后删除“Loading…”标志。
例子:-
// document ready events
$(document).ready(function(){
alert("document is ready..");
})
// using JQuery
$(function(){
alert("document is ready..");
})
// window on load event
function myFunction(){
alert("window is loaded..");
}
window.onload = myFunction;
当页面上的所有内容(包括DOM(文档对象模型)内容和异步JavaScript、框架和图像)完全加载时,Windows加载事件将触发。你也可以使用body onload=。两者都是一样的;窗口。Onload = function(){} and <body Onload ="func();>是使用同一事件的不同方式。
jQuery文档。就绪函数事件执行的时间比窗口稍早。onload,在页面上加载DOM(文档对象模型)时调用。它不会等待图像、帧完全加载。
摘自以下文章: $document.ready()与window.onload()的区别
文档。ready (jQuery事件)将在所有元素就位时触发,并且可以在JavaScript代码中引用它们,但不一定加载内容。文档。ready在加载HTML文档时执行。
$(document).ready(function() {
// Code to be executed
alert("Document is ready");
});
窗外。然而,加载将等待页面完全加载。这包括内部框架,图像等。
$(window).load(function() {
//Fires when the page is loaded completely
alert("window is loaded");
});