Ответ 1
.ready()
Хотя JavaScript предоставляет событие загрузки для выполнения кода, когда страница отображается, это событие не запускается до тех пор, пока все активы такие как изображения, были полностью получены. В большинстве случаев script может быть запущен, как только иерархия DOM будет полностью построен. Обработчик, переданный в .ready(), гарантированно будет выполняется после того, как DOM готов, так что это, как правило, лучшее место для присоединить все другие обработчики событий и запустить другой код jQuery. Когда используешь скрипты, которые полагаются на ценность свойств стиля CSS, важно ссылаться на внешние таблицы стилей или внедрять элементы стиля перед ссылаясь на сценарии.
В случаях, когда код использует загруженные активы (например, если размеры изображения требуются), код должен быть помещен в вместо этого используется обработчик для события загрузки.
Метод .ready() обычно несовместим с атрибутом. Если необходимо использовать нагрузку, либо не используйте .ready() или использовать метод jQuery.load() для присоединения обработчиков событий нагрузки к окна или к более конкретным элементам, например изображениям.
Ссылка: http://api.jquery.com/ready/
.load()
Этот метод является ярлыком для .on( "load", handler).
Событие загрузки отправляется элементу, когда он и все подэлементы имеют была полностью загружена. Это событие может быть отправлено на любой элемент связанные с URL: изображениями, сценариями, фреймами, iframe и оконный объект.
В общем, нет необходимости ждать, пока все изображения будут полностью загружен. Если код может быть выполнен ранее, обычно лучше всего разместить это в обработчике, отправленном методу .ready().
Ссылка: http://api.jquery.com/load-event/
GlobalEventHandlers.onload
Событие загрузки запускается в конце процесса загрузки документа. В этот пункт, все объекты в документе находятся в DOM, и все изображения и подкадры закончили загрузку.
Существуют также события DOM, специфичные для Gecko, такие как DOMContentLoaded и DOMFrameContentLoaded (который можно обрабатывать с помощью EventTarget.addEventListener()), которые запускаются после DOM для страница была построена, но не ждите других ресурсов. завершение загрузки.
Резервное копирование через браузер
Internet Explorer 8 поддерживает событие readystatechange, которое может быть используется для обнаружения готовности DOM. В более ранней версии Интернета Explorer, это состояние может быть обнаружено путем регулярного выполнения document.documentElement.doScroll( "left" );, поскольку этот фрагмент будет кидать ошибка, пока DOM не будет готова.
Универсальные JS-библиотеки, такие как jQuery, предлагают кросс-браузер методы обнаружения того, что DOM готов. Есть также автономные скрипты, которые предлагают эту функцию: contentloaded.js(поддерживает только один слушатель) и jquery.documentReady.js(не зависит от jQuery, несмотря на его название). Ref: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onload
код:
document.addEventListener("DOMContentLoaded", function (event) {
console.log("DOM fully loaded and parsed");
});
function load() {
console.log("load event detected!");
}
window.onload = load;
$(document).ready(function () {
console.log('ready');
});
$(window).load(function () {
console.log('loaded');
});
Демо-версия Timeline: http://jsfiddle.net/HgJ33/