Задать вопрос
JackShcherbakov
@JackShcherbakov

Можно вместо $(document).ready(function(){ написать JavaScript код после HTML, вроде бы сначала HTML прогружается потом JS?

Эквивалентно ли
$(document).ready(function(){... и потом HTML
этому:
Сначала код HTML.. потом только JS
  • Вопрос задан
  • 524 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
stanislav-belichenko
@stanislav-belichenko
Backend PHP Developer
Ответ на ваш вопрос: нет, далеко не во всех случаях этот код эквивалентен.

Когда вы собираетесь писать какой-либо JS-код, нужно пройти несколько этапов принятия решения, что, на чем и как вы будете писать.

1. С чем должен работать ваш код, с DOM-деревом (если говорить просто, то с html-кодом), с какими-то внешними сервисами, или с просто консолью, например.
2. Насколько объемен этот код, и соответственно, если задачи простые и их минимальное количество, использовать вместо JQuery (а именно она у вас, скорее всего, и используется) обычный Javascript, так называемый ванильный JS (чистый). Не путать с библиотекой Vanilla.js.
3. Будет ли этот код расширяться в дальнейшем.

Ответив на первый вопрос, вы поймете, нужно ли вам дожидаться, пока что DOM-дерево страницы будет построено браузером. Обратите внимание, что конструкция вида $(document).ready(function(){... не равнозначна написанному после html некоему скрипту, так как браузер у вас сначала получает запрошенную страницу, и потом, если не оговорено, одновременно начинает "строить" ее отображение и одновременно выполнять ваш js-код.

Именно чтобы браузер дождался первого и после начал выполнять второе, используют конструкции, приведенные вами в вопросе. И даже если бы вы писали на чистом JS, вы все равно писали бы что-то вроде этого document.addEventListener('DOMContentLoaded', ..., то есть один в один тот же код, с точки зрения его логики.

Ответив на второй вопрос, вы поймете, стоит ли приниматься писать на чистом JS или же использовать те или иные готовые библиотеки (фрейворки) для своих задач. С одной стороны, если задачи минимальны, это не сильно повлияет на время написания кода (для библиотек примеров в сети готовых решений тех или иных задач больше), а с другой стороны, если использовать библиотеки, это повлияет на скорость работы сайта и скорость первоначальной загрузки его страниц.

Ну и ответив на третий вопрос, вы поймете, стоит ли ввязываться в работу с чистым JS, или же все-таки лучше не рисковать и сразу писать с использованием какой-либо библиотеки, чтобы потом не упереться в излишнюю сложность своей работы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
DaFive
@DaFive
Можно, смотря за что этот код будет отвечать.
Операции с DOM не будут корректны пока он не загрузится. А console.log() стрельнуть - да ради бога.
Ответ написан
Комментировать
Negwereth
@Negwereth
lvivcss.com.ua
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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