Использовать Onload или готовый?

В моем приложении я использую

$(document).ready()

Каково различие между этим и

$(document).onload()
5
задан Dean 15 August 2011 в 18:05
поделиться

4 ответа

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

См .:

$ (document) .ready vs. $ (window) .load

Обратите внимание , что ready относится к jQuery, а не к исходному javascript, поэтому я предполагаю, что вы это знаете, и таким образом сравнение кажется логичным.

9
ответ дан 18 December 2019 в 08:26
поделиться

.ready() вызывается, как только код страницы загружен и разобран.

.onload() вызывается, когда все изображения/видео/etc загружены.

Используйте .ready() для лучшей работы jQuery, если у вас нет особых причин ждать до onload().

7
ответ дан 18 December 2019 в 08:26
поделиться

.ready()

Функция, выполняемая после готовности DOM.

-Из jQuery API Docs

.onload()

Событие onload происходит, когда агент пользователя завершает загрузку окна или всех кадров в FRAMESET.

-Из Спецификации HTML 4.01

2
ответ дан 18 December 2019 в 08:26
поделиться

Все объяснено в jquery docs.

Первое, что делает большинство Javascript программистов на Javascript, это добавление некоторый код в свою программу, подобный

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

Внутри которого находится код, который вы хотите запустить прямо когда страница загружается. Однако возникает проблема, заключающаяся в том, что код Javascript не запускается до тех пор, пока все изображения закончат загрузку (это включая рекламные баннеры). Причина в том, что использования window.onload в первую очередь заключается в том, что HTML "документ" еще не еще не закончил загрузку, когда вы впервые пытаетесь запустить свой код.

Чтобы обойти обе проблемы, jQuery имеет простой оператор, который проверяет документ и ждет, пока он не будет готов к для манипуляций, известное как событие ready событие:

В качестве дополнения (и как предложил yahoo) я всегда убеждаюсь, что мои скрипты jquery/js включены непосредственно перед закрывающим тегом body. Таким образом, вам не нужно беспокоиться о загрузке окна или функции jquery ready.

1
ответ дан 18 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: