From MDN:
срабатывает событие нагрузки в конце процесса загрузки документа. В эта точка, все объекты в документе находятся в DOM, и все изображения, скрипты, ссылки и подкадры завершают загрузку.
Так что если вам нужно убедиться, что все загружено, то это событие нужно ждать, чтобы стрелять. Если вы используете документ готов или поместите скрипт в нижней части тела, не все содержимое может быть полностью загружено.
Почему бы вам не использовать его. Вернувшись в действительно старые времена, это был единственный реальный способ узнать, что страница загружена. Но основная причина заключается в том, что вам действительно нужно полагаться на все содержимое, необходимое для вычисления высот/позиций элементов, чем вам нужно, чтобы убедиться, что они все полностью там и визуализированы. Если вы сделали это наготове, высоты могут быть разными.
Простым тестом было бы загрузить большое изображение в браузере. Прочитайте высоту в конце тела, готовьте документ и загрузите его и посмотрите, что это за значения. (Обратите внимание, как только изображение в кэше, браузер будет иметь правильную высоту)
var img = document.getElementById("x");
console.log("inline:", x.height);
$(function(){ console.log("ready:", x.height); });
window.addEventListener("load", function() {
console.log("load:", x.height);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="x" src="https://upload.wikimedia.org/wikipedia/commons/7/74/Earth_poster_large.jpg?ddddddd" />
Это говорит вам, когда страница загружается ... – epascarello
JavaScript из '' ». Помещая код в обработчик нагрузки, выполнение задерживается до тех пор, пока браузер не загрузит все артефакты страницы (css, изображения и т. Д.). – Pointy
Но вам не нужно знать, когда он загружается, создавая новую функцию, для которой предназначены комментарии. –