$ (Документ). Уже необходимо? - PullRequest
105 голосов
/ 10 января 2011

Я видел этот вопрос в stackoverflow, но не чувствую, что на него вообще ответили.

Нужно ли $(document).ready?

Я связываю все свои javascripts внизу страницы, так что теоретически они все работают после того, как документ будет готов в любом случае

Ответы [ 5 ]

119 голосов
/ 10 января 2011

Требуется ли $(document).ready?

нет

, если вы разместили все свои сценарии прямо перед закрывающим тегом </body>, вы выполнилиточно так же.

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

Для многих CMS выу вас нет особого выбора, куда загружать скрипты, поэтому для модульного кода полезно использовать событие document.ready.Вы действительно хотите вернуться назад и отлаживать старый код, если будете использовать его в другом месте?

не по теме:

В качестве примечания: вы должны использовать jQuery(function($){...}); вместо $(document).ready(function(){...}); какон заставляет псевдоним $.

22 голосов
/ 10 января 2011

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

В качестве примечания, сокращение от $ (document) .ready - это код ниже.

$(function() {
// do something on document ready
});

Этот вопрос может быть хорошим.Вы читали это? jQuery: зачем использовать document.ready, если внешний JS внизу страницы?

4 голосов
/ 19 марта 2013

Нет, в этом нет необходимости, если вы знаете, что у вас не происходит никаких отложенных событий - и в большинстве случаев вы узнаете, разработали ли вы то, над чем работаете сверху вниз.

- Когда вы вводите чужой код без тщательного аудита, вы не знаете.

Итак, спросите себя, используете ли вы фреймворк или редактор, который помогает вам в структуре?Вы вводите чужой код и не удосужились прочитать каждый файл?Готовы ли вы пройти тестирование кода с помощью матрицы операционной системы, браузера и версии браузера?Вам нужно , чтобы выжать каждую унцию скорости из вашего кода?

document.ready () делает многие из этих вопросов неактуальными.document.ready () был разработан, чтобы сделать вашу жизнь проще.Это приводит к небольшому (и я осмелюсь сказать, что приемлемо) снижению производительности.

1 голос
/ 10 января 2011

Я видел ссылки / посты в блоге по использованию jquery document.ready.По моему мнению, и использование или размещение всего вашего javascript внизу страницы являются действительными.А теперь вопрос, который будет лучше?Это просто вопрос стиля программирования.

0 голосов
/ 05 октября 2018

Нет, это не обязательно.Вы можете поместить тег script прямо перед закрывающим тегом тела или, если вы поддерживаете IE9 +, вы можете использовать нативный JS.

<script>alert('DOM Loaded!');</script>
</body>

<script>
document.addEventListener("DOMContentLoaded", function(event) { 
      // DOM has loaded ready to fire JS scripts
    });
</script>
...