Что запускает функцию jQuery ready ()? - PullRequest
1 голос
/ 15 июня 2011

Теперь я в замешательстве, я думал, что jQuery(document).ready(function(){ ... }) был запущен, когда страница заканчивается, чтобы загрузить все содержимое.

Ну, похоже, это не так, я только что испытал: загрузил большие картинки на мою страницу и добавил предупреждение в мою функцию готовности. Похоже, что предупреждение всплывает, прежде чем изображения в фоновом режиме будут завершены для загрузки ... Можно ли ожидать, что связь между пользователем агента и веб-сервером http завершится, чтобы вызвать готовую функцию? Я имею в виду, что я хочу заставить посетителей ждать с большим черным div и «загружать» текст, пока все элементы не будут выведены (и затем освободить div).

Ответы [ 6 ]

4 голосов
/ 15 июня 2011

Событие ready наступает, когда загружаются все элементы DOM, но не раньше, чем завершаются загрузка изображений, на которые ссылаются эти элементы.Вы, вероятно, хотите использовать вместо этого событие load , которое будет ожидать загрузки изображений.Обратите внимание на предостережения в документации.

Событие загрузки отправляется элементу, когда он и все вложенные элементы полностью загружены.Это событие может быть отправлено любому элементу, связанному с URL: изображения, скрипты, фреймы, iframes и объект окна.

Пример:

$(window).load( function() { ... do stuff ... } );
1 голос
/ 15 июня 2011

window.onload вызывается, когда все на странице загружено.Таким образом, DOM, scripts, css и images.

document.ready вызывается, когда DOM завершает создание, как это происходит на этапе, когда с ним можно манипулировать / получить к нему доступ.Таким образом, в этом случае img html загружен, но не ресурс изображения.

Вы можете сделать событие load для этого изображения:

$("#image").load(function(){

    $("#div_you_want_to_hide").hide();  

});

Или просто подождать окнозагрузить полностью:

$(window).load(function(){

    $("#div_you_want_to_hide").hide();  

});
1 голос
/ 15 июня 2011

Насколько я понимаю, это когда дом загружен. Это будет включать все файлы сценариев, и я бы предположил, CSS-файлы. Но это не будет включать в себя изображения. Интересно, будет ли лучше использовать window.onload = function () {}.

window.onload против $ (документ) .ready ()

0 голосов
/ 28 марта 2014

Как вы можете видеть в аннотированном источнике , готовый jQuery просто добавляет прослушиватель для события DOMContentLoaded для большинства браузеров, а для старых версий IE он добавляет в onreadystatechangeи onload.

Из документации MDN «Событие DOMContentLoaded наступает, когда документ полностью загружен и проанализирован, не дожидаясь окончания загрузки таблиц стилей, изображений и подкадров»

Чтобы дождаться полной страницы, просто используйте слушатель load или jQuery(window).load(...), который ее оборачивает.

0 голосов
/ 15 июня 2011
Событие

ready сработало после того, как весь DOM полностью построен. если вы хотите дождаться загрузки изображений, вы можете использовать load event

0 голосов
/ 15 июня 2011

Это просто для того, когда DOM готов, а не когда все ресурсы были загружены.Отметьте это, чтобы узнать, как проверить, загружены ли изображения:

http://www.stoimen.com/blog/2009/08/05/jquery-check-whether-image-is-loaded/

...