Должен ли я использовать window.load или document.ready jquery

Недавно я увидел, что вы можете использовать

$('document').ready(function() {
//Do Code
});

или

$('window').load(function() {
//Do Code
});

для jQuery.

Однако они кажутся мне одинаковыми! Но ясно, что нет.

Итак, мой вопрос: какой из них следует использовать для создания веб-сайта на основе анимации и асинхронизации? А также, какой из двух лучше всего использовать?

Спасибо.

Ответы

Ответ 1

$('document').ready запускает код, когда DOM готов, но не когда загружена сама страница, то есть сайт не был раскрашен, а содержимое, как изображения, не было загружено.

$(window).load запускает код, когда страница была расписана, и все содержимое загружено. Это может быть полезно, когда вам нужно получить размер изображения. Если изображение не имеет стиля или ширины/высоты, вы не можете получить его размер, если не используете $(window).load.

Ответ 2

Ну, в первую очередь, вы можете захотеть использовать "готовое" событие, которое вы можете обработать следующим образом:

$().ready(function() {
  ...
});

Или, более лаконично и идиоматично:

$(function() {
  ...
});

Обработчик "load" действительно относится к реальному событию и может обрабатываться несколькими различными типами элементов: <img> и <iframe>, например. Событие "load" на уровне документа или окна происходит, когда загружаются все ресурсы страницы. Однако (в некоторых браузерах) "готовое" событие происходит, когда страница DOM готова, но, возможно, перед вещами типа <img>.

Другой вариант - просто поместить теги <script> в самый конец <body> или даже после <body>. Таким образом, скрипты имеют всю DOM для работы, но вам не нужно беспокоиться о каких-либо событиях, чтобы это знать.