$(function(){}) - это то же самое, что и $(document).ready в jquery, поэтому мне интересно, могу ли я поместить его в тело вместо головы? Я вижу только, что сценарий помещается в другой раздел страницы, а выполняется в другое время. Это правда? Могу ли я поместить скрипт в div в середине страницы? Повлияет ли это на загрузку DOM?

0
Help - I need somebody's help 3 Фев 2013 в 11:22

3 ответа

Лучший ответ

Я вижу только, что сценарий помещается в другой раздел страницы, а выполняется в другое время. Это правда?

Да, но сценарий, о котором вы говорите, просто вызывает один вызов функции (ready). Обратный вызов будет вызван позже, когда DOM будет готов, в любом случае.

Могу ли я поместить скрипт в div в середине страницы?

Да. Но опять же, если рассматриваемый скрипт просто вызывает ready (напрямую или через ярлык), это не имеет большого значения. Я бы отговорил вас от замусоривания скриптов по всей разметке; Лучше всего попытаться сохранить их в значительной степени отдельно.

Повлияет ли это на загрузку DOM?

Только если вы используете document.write внутри скрипта (и даже тогда, это не влияет на загрузку DOM, но может повлиять на его содержимое).


Если вы можете выбрать, куда идут теги script (например, вы не пишете библиотеку JavaScript или плагин jQuery, ваш сценарий находится на странице, которой вы управляете), есть мало причин использовать {{X1) } } . Вместо этого поместите свой тег сценария в конец страницы, непосредственно перед закрывающим тегом </body>. Использованная литература:

3
xiº 7 Апр 2016 в 11:21

Цель document.ready состоит в том, чтобы подождать, пока DOM не будет готов, если вы поместите свои сценарии непосредственно перед закрывающим тегом тела или сразу после изменяемого HTML, тогда вам не нужно document.ready, хотя все еще должен работать.

2
elclanrs 3 Фев 2013 в 07:25

Это будет работать, но это плохая практика. Если вы можете, вы должны поместить свои сценарии в конец веб-страницы, а не в голову. Если, конечно, у вас нет чего-то (например, функция готовности к документу), которое вам нужно загрузить в первую очередь.

0
Luke Walsh 3 Фев 2013 в 07:27