2016-02-16 2 views
-2

Я никогда не понимал этого, в чем смысл использования window.onload, как если бы у загрузки JavaScript ничего не было в функции, как только загрузилась страница?Какой смысл в JavaScript window.onload?

window.onload = function() { 
 
    alert("hello"); 
 
};

+2

Это говорит вам, когда страница загружается ... – epascarello

+0

JavaScript из '' ». Помещая код в обработчик нагрузки, выполнение задерживается до тех пор, пока браузер не загрузит все артефакты страницы (css, изображения и т. Д.). – Pointy

+0

Но вам не нужно знать, когда он загружается, создавая новую функцию, для которой предназначены комментарии. –

ответ

1

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" />

0

Это может быть полезно, если у вас есть скрипт в отдельном файле, или если у вас есть отдельные файлы с другими ресурсами, которые вы хотите быть загружен первым.

Смежные вопросы